Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/40: Рейтинг темы: голосов - 40, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 02.09.2007
Сообщений: 209

Как записать ConnectionString для ADODB.Connection?

04.12.2007, 06:08. Показов 8047. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите как записать ConnectionString для ADODB.Connection, чтобы открыть скажем 'D:1.txt', без предварительного создания DSN.
Заранее благодарен.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.12.2007, 06:08
Ответы с готовыми решениями:

Как подключить внешнюю БД с помощью ADODB.Connection
Имеется несколько ADODB.Connection (безразмерный массив)подключенных к РАЗНЫМ БД. Как выполнить запрос на объедение таблиц из этих БД...

Механизм для осуществления взаимодействия между recodset-ами под ADODB.Connection
Есть ли какой-нибудь механизм для осуществления взаимодействия между recodset-ами под ADODB.Connection.

Как узнать, есть ли актаивные транзакции у данного ADODB.Connection ? (+++)
Надо затем, что я пишу обработчик ошибок. НО ошибка может возникнуть и до начала действия транзации. А я,как бы должен, если активная...

14
Серж
05.12.2007, 09:05
Попробуй примерно так:
Visual Basic
1
2
 Set cn = New ADODB.Connection
 cn.ConnectionString = 'Provider=Microsoft.Jet.OLEDB.3.51;Persist _   Security Info=False;Data Source=c:myDB.mdb;'
c базами mdb это работает, если получится напиши
0 / 0 / 0
Регистрация: 02.09.2007
Сообщений: 209
05.12.2007, 11:14  [ТС]
Точно знаю что для текстовых файлов доджна быть другая строка подключений. Но вот граматику не знаю.
Алло! Люди!). Ведь кто-то же знает! Подскажите пожалуйста.
0
0 / 0 / 0
Регистрация: 02.09.2007
Сообщений: 209
08.12.2007, 18:01  [ТС]
Ладно, нашел сам.
Для интерисюющихся сообщаю:
Visual Basic
1
2
3
4
5
6
7
8
    Dim CN As New Connection, RS As New Recordset
    
CN.Open 'Provider=MSDASQL.1;Extended Properties=' & Chr(34) & _
'DefaultDir=D:; & _
'Driver={Microsoft Text Driver (*.txt; *.csv)};' & Chr(34)
 
    Set RS.ActiveConnection = CN
    RS.Open ('SELECT * FROM 1.txt')
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,327
22.04.2014, 20:10
Цитата Сообщение от Said007 Посмотреть сообщение
Dim CN As New Connection, RS As New Recordset
CN.Open 'Provider=MSDASQL.1;Extended Properties=' & Chr(34) & _
'DefaultDir=D:; & _
'Driver={Microsoft Text Driver (*.txt; *.csv)};' & Chr(34)
Set RS.ActiveConnection = CN
RS.Open ('SELECT * FROM 1.txt')
потомки не в восторге, это в ВБА сработает?
похоже нет, кое что заремарчено, может кто подправить, спасибо
0
Заблокирован
23.04.2014, 07:11
Ципихович Эндрю,

ЛОЛ 04.12.2007, 06:08
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,327
23.04.2014, 07:26
что Ваш пост означает?
0
Заблокирован
23.04.2014, 20:07
Ципихович Эндрю, Означает, что прошло 7 лет с момента данного сообщения!
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,327
23.04.2014, 20:12
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Option Explicit
 
Public Sub test()
 
'Connection - соединение с базой даннных
'Command - команда DML
'Recordset - набор записей
'Stream - поток двоичных или текстовых данных
'Record -Запись
'нужно подключить библиотеку Microsoft ActiveX Data Object 2.x Library
 
    Dim cn As ADODB.Connection
    Set cn = New ADODB.Connection
    '"e:\" -  директория, где хранится файл
    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=w:\;Extended Properties=""text;HDR=YES;FMT=Delimited"""
    'открыть соединение с базой даннных
    cn.Open
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
    'имя файла к которому идёт обращение "С_помощью_ADO_и_SQL_опрашивать_текстовые_файлы"
    rs.Open "select * from [С_помощью_ADO_и_SQL_опрашивать_текстовые_файлы#txt]", cn
    'пример обращений к столбцам выборки, можно менять сам запрос и тем самым получать столбец, строку
    Debug.Print rs.Fields("ID").Value
    Debug.Print rs.Fields("Name").Value
    Debug.Print rs.Fields("Price").Value
 
    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
 
End Sub
но на строке
Visual Basic
1
Debug.Print rs.Fields("ID").Value
получаю
Не удаётся найти объект в семействе, соответствующий требуемому имени или порядковому номеру
вроде всё понятно, что ничего не понятно, как нужно поправить???
в файле w:\С_помощью_ADO_и_SQL_опрашивать_тексто вые_файлы.txt
имеется
ID,Name,Price
1,Chairs,$40.00
2,Table,$75.00
3,Fork,$1.50
4,Lamp,$15.00
5,Rug,$35.00
0
Заблокирован
24.04.2014, 20:05
http://mik-seite.narod.ru/artikles/txtdb1.htm не то?
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,327
24.04.2014, 20:28
там для знакомства слишком замудрёно
начал с простого


текст файла w:\С_помощью_ADO_и_SQL_опрашивать_тексто вые_файлы.txt, разделить ";"
ID;Name;Price
1;Chairs;$40.00
2;Table;$75.00
3;Fork;$1.50
4;Lamp;$15.00
5;Rug;$35.00
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Option Explicit
 
Public Sub test()
 
'Connection - соединение с базой данных
'Command - команда DML
'Recordset - набор записей
'Stream - поток двоичных или текстовых данных
'Record -Запись
'нужно подключить библиотеку Microsoft ActiveX Data Object 2.x Library
 
    Dim cn As ADODB.Connection
    Set cn = New ADODB.Connection
    '"e:\" -  директория, где хранится файл
    'HDR = YES указывает, что первая строка содержит columnnames, а не данные, HDR = NO; свидетельствует об обратном
    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=w:\;Extended Properties=""text;HDR=YES;FMT=Delimited"""
    'открыть соединение с базой данных
    cn.Open
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
    'имя файла к которому идёт обращение "С_помощью_ADO_и_SQL_опрашивать_текстовые_файлы"
    rs.Open "select * from [С_помощью_ADO_и_SQL_опрашивать_текстовые_файлы#txt]", cn
    'пример обращений к столбцам выборки, можно менять сам запрос и тем самым получать столбец, строку
    Debug.Print rs.Fields("ID").Value
    Debug.Print rs.Fields("Name").Value
    Debug.Print rs.Fields("Price").Value
 
    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
 
End Sub
у меня трудности пока
как запросить например столбец 1, строку 1
и варианты вывода
0
Заблокирован
26.04.2014, 16:29
Ципихович Эндрю, В общем время было мало, с текстовыми базами я не сталкивался и не собираюсь, прошлый это век. Но все же если тебе надо, смотри в сторону ADODB.Stream
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,327
26.04.2014, 21:16
моя задача: имеется текстовый файл, 100 000 строк, вроде этих
абонирую, абонирует, 1, ет
разделитель запятая
задача - много проверок
подзадача
чтобы всё чётко было
данные, запятая пробел и т.д.
за 1-2 секунды это сделает? как?
то есть если будет записано
абонирую , абонирует, 1, ет
или
абонирую, абонирует, 1, ет - известить об ошибке

Добавлено через 1 час 2 минуты
в данный момент
Schema.ini
[С_помощью_ADO_и_SQL_опрашивать_текстовые _файлы.txt]
Format=Delimited(точка с запятой-на форуме это смайл)
ColNameHeader=True
n=ColumnNametype [Text]
CharacterSet=ANSI
файл С_помощью_ADO_и_SQL_опрашивать_текстовые _файлы.txt
ID;Name;Price;
1 ;Chairs ;$40.00 ;
2;Table;$75.00;
3;Fork;$1.50;
4;Lamp;$15.00;
5;Rug;$35.00;
как мне получить реальные значения данных 1 строки
[1 ]
[Chairs ]
[$40.00 ]
как это получить?
делаю так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Option Explicit
 
Public Sub test()
 
'Connection - соединение с базой данных
'Command - команда DML
'Recordset - набор записей
'Stream - поток двоичных или текстовых данных
'Record -Запись
'нужно подключить библиотеку Microsoft ActiveX Data Object 2.x Library
 
    Dim cn As ADODB.Connection
    Set cn = New ADODB.Connection
    '"х:\" -  директория, где хранится файл
    'в каталоге, например "х:\" - директории, где хранится файл должен быть файл с именем Schema.ini, его задача дать нужную информацию программе
    'каждая запись Schema.ini указывает на один из пяти характеристик таблицы:
    'первая запись в Schema.ini - имя исходного текстового файла в квадратных скобках - [С_помощью_ADO_и_SQL_опрашивать_текстовые_файлы.txt]
    'вторая запись в Schema.ini - формат файла, поля в файле разделены Format=Delimited(;)
    'третья запись в Schema.ini - имена полей, ширина и типы, ColNameHeader = True - включить имена полей в первой строке таблицы
    'четвёртая запись в Schema.ini - набор символов
    'пятаая запись в Schema.ini - преобразования данных специального типа
    'апостроф ' в Schema.ini как и в VBA, VB является началом коммента
 
    'HDR = YES указывает, что первая строка содержит columnnames, а не данные, HDR = NO; свидетельствует об обратном
    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=j:\;Extended Properties=""text;HDR=YES;FMT=Delimited"""
    'открыть соединение с базой данных
    cn.Open
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
    'имя файла к которому идёт обращение "С_помощью_ADO_и_SQL_опрашивать_текстовые_файлы"
    rs.Open "select * from [С_помощью_ADO_и_SQL_опрашивать_текстовые_файлы#txt]", cn
    'пример обращений к столбцам выборки, можно менять сам запрос и тем самым получать столбец, строку
    Debug.Print "[" & rs.Fields("ID").Value & "]"
    Debug.Print "[" & rs.Fields("Name").Value & "]"
    Debug.Print "[" & rs.Fields("Price").Value & "]"
 
    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
 
End Sub
0
Заблокирован
26.04.2014, 21:36
Ципихович Эндрю, Ты знаешь у меня не работает, я даже включить не могу, чтобы посмотреть и помочь тебе...
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,327
27.04.2014, 06:43
они же братья, я имею ввиду, что это на ВБА
и нужно иметь файлы
Schema.ini и С_помощью_ADO_и_SQL_опрашивать_текстовые _файлы.txt
с указанным текстом в j:\
а для простоты прилагаю всё это
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.04.2014, 06:43
Помогаю со студенческими работами здесь

Как с помощью ADODB.Connection и метода OpenSchema переимовать поле таблицы в базе Access ?
Как с помощью cnn as ADODB.Connection и cnn.OpenSchema перименовать поле в структуре таблицы в базе Access?

Свойство ConnectionString объекта Connection
Подскажите пожалуйста: 1.В чем отличие между аргументами Provider и Remote Provider? 2.Аргумент Remote Server задает путь к серверу,...

Как программным путем можно вызвать окно Data Link Properties объектов ADODC или ADODB.Connection ?
Подскажите пожалуйста, как программным путем можно вызвать окно Data Link Properties объектов ADODC или ADODB.Connection ? Может тут надо...

Transactions в adodb.connection
Здравствуйте! Уменя такой вопрос - в чем заключается суть транзакций в объекте Connection. Насколько я понимаю трансакция - получение из БД...

DBcnn As New ADODB.Connection - ПАРОЛЬ?
объявил: Dim DBcnn As New ADODB.Connection ConnStrSYS = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + App.Path +...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru