Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / с помощью ADO + SQL опрашивать текстовые файлы / 25 сообщений из 71, страница 1 из 3
19.04.2014, 18:37
    #38619577
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
здравствуйте, собственно по сабжу есть ли у кого хороший пример?, спасибо
...
Рейтинг: 0 / 0
19.04.2014, 20:10
    #38619611
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
чуть в сторону от ВБ, но может скажете не пойму, сказано, здесь
http://www.internet-technologies.ru/articles/article_293.html#subscribeCansel
создайте три файла
index.html
data.txt
CSV.DSN
есть их текст
далее сказано
Остается отметить, что все три файла для проверки работы примера вы должны сохранить в одной директории вашего веб-сервера
А если есть на сервере не index.html, index.php, тогда в него доливать соль:
Код: html
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.
43.
44.
45.
46.
<%
Dim sDSNFile
sDSNFile = «CSV.dsn»

Dim sScriptDir
sScriptDir = Request.ServerVariables(«SCRIPT_NAME»)
sScriptDir = StrReverse(sScriptDir)
sScriptDir = Mid(sScriptDir, InStr(1, sScriptDir, «/»))
sScriptDir = StrReverse(sScriptDir)

' Создадим DSN
Dim sPath, sDSN
sPath = Server.MapPath(sScriptDir) & ""
sDSN = «FileDSN=» & sPath & sDSNFile & _
«;DefaultDir=» & sPath & _
«;DBQ=» & sPath & «;»

' к примеру sDSN может получится таким:
' FileDSN=C:InetpubwwwrootCSV.DSN;DefaultDir=
' C:Inetpubwwwroot;DBQ=C:Inetpubwwwroot;

' Соединяемся с БД
Dim Conn, rs
Set Conn = Server.CreateObject(«ADODB.Connection»)
Conn.Open sDSN

' Получим только Name и Price
Dim sql
sql = «SELECT Name,Price FROM data.txt»

' Создадим объект recordset
set rs = conn.execute(sql)

Do WHile Not rs.EOF
Response.Write "Name: " & rs(«Name»)
Response.Write "<BR>Price: " & rs(«Price»)
Response.Write «<HR>» 
rs.MoveNext 
Loop

' Окончание работы
rs.close
set rs = nothing
conn.close
set conn = nothing
%>



так? они уживутся?
...
Рейтинг: 0 / 0
21.04.2014, 10:34
    #38620130
zchvv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
cns="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ПапкаГдеФайл;Extended Properties='text;HDR=No;FMT=Delimited'"

234 qwerty asdfgh
207 zxcvbn lkjhgfd
120 zxcvbn lkjhgfd

select f1,f2,f3 from test.txt where f1 like '%20%'
...
Рейтинг: 0 / 0
21.04.2014, 12:40
    #38620287
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
zchvv, похоже с загрузкой на веб-сервер пролетаю, так как нужно
Для выполнения asp скрипта нужно иметь windows хостинг где разрешен и настроен запуск classic asp. Расширение файла при этом должно быть asp
А у меня такого не предвидится

Вашу мысль не понял
...
Рейтинг: 0 / 0
21.04.2014, 14:10
    #38620426
zchvv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
Я отвечал на вопрос, вынесенный в название топика. Какую строку соединения использовать, как обращаться к столбцам. Ни о каких веб-серверах не думал, ибо эта тема лежит далек-далеко за пределами моей компетенции. Но у нас есть Shocker.Pro!
...
Рейтинг: 0 / 0
21.04.2014, 19:39
    #38620820
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
zchvv, ну тоже не плохо по сабжу, предположим, что в текстовике
ID,Name,Price
1,"Chairs",$40.00
2,"Table",$75.00
3,"Fork",$1.50
4,"Lamp",$15.00
5,"Rug",$35.00
тогда упор на
есть ли у кого хороший пример? и полный, как запросить столбец, строку, спасибо заранее
...
Рейтинг: 0 / 0
22.04.2014, 08:14
    #38621049
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
катастрофаzchvv, ну тоже не плохо по сабжу, предположим, что в текстовике
ID,Name,Price
1,"Chairs",$40.00
2,"Table",$75.00
3,"Fork",$1.50
4,"Lamp",$15.00
5,"Rug",$35.00
тогда упор на
есть ли у кого хороший пример? и полный, как запросить столбец, строку, спасибо заранее

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Public Sub test()
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    
    Set cn = New ADODB.Connection
    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\111\;Extended Properties=""text;HDR=YES;FMT=Delimited"""
    
    cn.Open
        
    Set rs = New ADODB.Recordset
    rs.Open "select * from [qqq#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 / 0
22.04.2014, 19:05
    #38622086
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
HandKot, спасибо
важное дополнение
'нужно подключить библиотеку Microsoft ActiveX Data Object 2.x Library
а с этой строкой не совладал
Код: vbnet
1.
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=J:\111.txt\;Extended Properties=""text;HDR=YES;FMT=Delimited"""


я видимо не правильно указал место нахождения файла
Source=J:\111.txt\ - как нужно?
...
Рейтинг: 0 / 0
22.04.2014, 19:57
    #38622153
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
я понял, что первоисточник здесь
http://www.connectionstrings.com/textfile/
как это
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\txtFilesFolder\;
Extended Properties="text;HDR=Yes;FMT=Delimited";
привести в божеский вид хз
...
Рейтинг: 0 / 0
23.04.2014, 09:28
    #38622488
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
катастрофаHandKot, спасибо
важное дополнение
'нужно подключить библиотеку Microsoft ActiveX Data Object 2.x Library
а с этой строкой не совладал
Код: vbnet
1.
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=J:\111.txt\;Extended Properties=""text;HDR=YES;FMT=Delimited"""


я видимо не правильно указал место нахождения файла
Source=J:\111.txt\ - как нужно?

нужно указывать только директорию, где хранится файл, а не сам файл
...
Рейтинг: 0 / 0
23.04.2014, 12:26
    #38622811
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
HandKot,
упирается сегодня нечётное, и выделяет часть строки cn As ADODB.Connection
нужно указывать только директорию, где хранится файл, а не сам файл - а с какого файла он будет опрашивать ?
...
Рейтинг: 0 / 0
23.04.2014, 13:13
    #38622923
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
иногда надо подключать мозги иначе они могут покрыться плесенью
катастрофаупирается сегодня нечётное, и выделяет часть строки cn As ADODB.Connection

библиотека Microsoft ActiveX Data Object 2.x Library все еще подключена?

катастрофаHandKot,
нужно указывать только директорию, где хранится файл, а не сам файл - а с какого файла он будет опрашивать ?
директория - это База Данных. Файлы внутри неё - таблицы. К какой таблице обращаетесь определяется в запросе (секция FROM)
...
Рейтинг: 0 / 0
23.04.2014, 13:30
    #38622959
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
HandKot,
библиотека Microsoft ActiveX Data Object 2.x Library все еще подключена? - да!!!
К какой таблице обращаетесь определяется в запросе (секция FROM) - from [qqq#txt] - и что это значит ?
...
Рейтинг: 0 / 0
23.04.2014, 16:59
    #38623429
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
катастрофаК какой таблице обращаетесь определяется в запросе (секция FROM) - from [qqq#txt] - и что это значит ?
файл назывался qqq.txt, почему точка заменилась на #, сказать не могу

по первой строке, тогда, надо смотреть код целиком
...
Рейтинг: 0 / 0
23.04.2014, 17:24
    #38623482
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
HandKot,
после полудня продвинулось
Код: vbnet
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


но на строке
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 / 0
23.04.2014, 17:28
    #38623494
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
...
Рейтинг: 0 / 0
23.04.2014, 18:06
    #38623553
AlexShiryaev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
катастрофа,

После открытия рекордсета попробуй выполнить rs.Next() (точно не помню, но по-моему так звучит).
А то ты открыл рекордсет, а на какой строке курсор не понятно.
...
Рейтинг: 0 / 0
23.04.2014, 18:21
    #38623571
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
AlexShiryaevкатастрофа,

После открытия рекордсета попробуй выполнить rs.Next() (точно не помню, но по-моему так звучит).
А то ты открыл рекордсет, а на какой строке курсор не понятно.
всю строку красным выделяет
>потому что у тебя CSV
это как Вы определили? и как сделать в текстовый?
...
Рейтинг: 0 / 0
23.04.2014, 19:40
    #38623664
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
Konst_One http://msdn.microsoft.com/en-us/library/ms709353(v=vs.85).aspx

потому что у тебя CSV

это здесь указано:
CSV с разделителями
Поля в файле разделенных запятыми (значения, разделенные запятыми).
Формат = CSVDelimited
???
формат у меня не CSVDelimited, а Delimited
ну да в файле у меня разделено запятыми
а как правильно? кто-то может сказать?
...
Рейтинг: 0 / 0
24.04.2014, 01:13
    #38623875
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
катастрофа
AlexShiryaevкатастрофа,

После открытия рекордсета попробуй выполнить rs.Next() (точно не помню, но по-моему так звучит).
А то ты открыл рекордсет, а на какой строке курсор не понятно.

всю строку красным выделяет
>потому что у тебя CSV
это как Вы определили? и как сделать в текстовый?

Исходя из этого можно понять как определяется CSV и почему второй вопрос отпадет сам собой.
...
Рейтинг: 0 / 0
24.04.2014, 05:44
    #38623903
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
iMrTidy,
и как быть?
1 менять расширение текстового файла на CSV?
2 менять разделители в этом файле? на что?
3 менять строки в коде? на что?
что-то четвёртое......
...
Рейтинг: 0 / 0
24.04.2014, 07:58
    #38623930
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
катастрофаiMrTidy,
и как быть?
1 менять расширение текстового файла на CSV?
2 менять разделители в этом файле? на что?
3 менять строки в коде? на что?
что-то четвёртое......

если бы Вы удосужились почитать немного о строке подключения к текстовым файлам, а не просто открыть сайт
катастрофая понял, что первоисточник здесь
http://www.connectionstrings.com/textfile/
то там нашли бы и про разделитель и про shema.ini (первый два абзаца Delimited columns и Fixed length columns) и ...что-то четвертое
...
Рейтинг: 0 / 0
24.04.2014, 08:25
    #38623938
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
HandKot,
сделал, для себя, чтобы не забыть

текст файла 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

Код: vbnet
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



закончилось, всем спасибо
...
Рейтинг: 0 / 0
24.04.2014, 10:28
    #38624074
zchvv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
Ничего не закончилось. Теперь нужно хорошо разобраться с объектом Recordset. Debug.Print rs.Fields("ID").Value явно недостаточно для продуктивной работы.
...
Рейтинг: 0 / 0
24.04.2014, 11:28
    #38624218
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
с помощью ADO + SQL опрашивать текстовые файлы
zchvvНичего не закончилось. Теперь нужно хорошо разобраться с объектом Recordset. Debug.Print rs.Fields("ID").Value явно недостаточно для продуктивной работы.
поддерживаю. Всё только началось
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / с помощью ADO + SQL опрашивать текстовые файлы / 25 сообщений из 71, страница 1 из 3
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]