powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / с помощью ADO + SQL опрашивать текстовые файлы
25 сообщений из 71, страница 1 из 3
с помощью ADO + SQL опрашивать текстовые файлы
    #38619577
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
здравствуйте, собственно по сабжу есть ли у кого хороший пример?, спасибо
...
Рейтинг: 0 / 0
с помощью ADO + SQL опрашивать текстовые файлы
    #38619611
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чуть в сторону от ВБ, но может скажете не пойму, сказано, здесь
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
с помощью ADO + SQL опрашивать текстовые файлы
    #38620130
zchvv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
с помощью ADO + SQL опрашивать текстовые файлы
    #38620287
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zchvv, похоже с загрузкой на веб-сервер пролетаю, так как нужно
Для выполнения asp скрипта нужно иметь windows хостинг где разрешен и настроен запуск classic asp. Расширение файла при этом должно быть asp
А у меня такого не предвидится

Вашу мысль не понял
...
Рейтинг: 0 / 0
с помощью ADO + SQL опрашивать текстовые файлы
    #38620426
zchvv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я отвечал на вопрос, вынесенный в название топика. Какую строку соединения использовать, как обращаться к столбцам. Ни о каких веб-серверах не думал, ибо эта тема лежит далек-далеко за пределами моей компетенции. Но у нас есть Shocker.Pro!
...
Рейтинг: 0 / 0
с помощью ADO + SQL опрашивать текстовые файлы
    #38620820
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
с помощью ADO + SQL опрашивать текстовые файлы
    #38621049
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа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
с помощью ADO + SQL опрашивать текстовые файлы
    #38622086
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
с помощью ADO + SQL опрашивать текстовые файлы
    #38622153
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я понял, что первоисточник здесь
http://www.connectionstrings.com/textfile/
как это
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\txtFilesFolder\;
Extended Properties="text;HDR=Yes;FMT=Delimited";
привести в божеский вид хз
...
Рейтинг: 0 / 0
с помощью ADO + SQL опрашивать текстовые файлы
    #38622488
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа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
с помощью ADO + SQL опрашивать текстовые файлы
    #38622811
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKot,
упирается сегодня нечётное, и выделяет часть строки cn As ADODB.Connection
нужно указывать только директорию, где хранится файл, а не сам файл - а с какого файла он будет опрашивать ?
...
Рейтинг: 0 / 0
с помощью ADO + SQL опрашивать текстовые файлы
    #38622923
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
иногда надо подключать мозги иначе они могут покрыться плесенью
катастрофаупирается сегодня нечётное, и выделяет часть строки cn As ADODB.Connection

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

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

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

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

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

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

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

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

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

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

если бы Вы удосужились почитать немного о строке подключения к текстовым файлам, а не просто открыть сайт
катастрофая понял, что первоисточник здесь
http://www.connectionstrings.com/textfile/
то там нашли бы и про разделитель и про shema.ini (первый два абзаца Delimited columns и Fixed length columns) и ...что-то четвертое
...
Рейтинг: 0 / 0
с помощью ADO + SQL опрашивать текстовые файлы
    #38623938
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
с помощью ADO + SQL опрашивать текстовые файлы
    #38624074
zchvv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего не закончилось. Теперь нужно хорошо разобраться с объектом Recordset. Debug.Print rs.Fields("ID").Value явно недостаточно для продуктивной работы.
...
Рейтинг: 0 / 0
с помощью ADO + SQL опрашивать текстовые файлы
    #38624218
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zchvvНичего не закончилось. Теперь нужно хорошо разобраться с объектом Recordset. Debug.Print rs.Fields("ID").Value явно недостаточно для продуктивной работы.
поддерживаю. Всё только началось
...
Рейтинг: 0 / 0
25 сообщений из 71, страница 1 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / с помощью ADO + SQL опрашивать текстовые файлы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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