powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Recordset в текстовый файл...
8 сообщений из 8, страница 1 из 1
Recordset в текстовый файл...
    #35115684
аха.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
... выгрузить.
Подскажите. Хорошо если примером.
Хочу попробовать оптимизировать выгрузку рекордсета в цикле. CopyFromRecordset не поможет, т.к. объемы больше эксельных допустимых 65к.
...
Рейтинг: 0 / 0
Recordset в текстовый файл...
    #35115883
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тынц.
Не уверен, что сработает, но попробовать стоит. cnFrom - соединение с твоей базой, cnTo - ODBC-соединение с текстовым файлом.
...
Рейтинг: 0 / 0
Recordset в текстовый файл...
    #35115894
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: аха.
> ... выгрузить.
> Подскажите. Хорошо если примером.
> Хочу попробовать оптимизировать выгрузку рекордсета в цикле.
> CopyFromRecordset не поможет, т.к. объемы больше эксельных допустимых 65к.

В XML подойдет?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub Main()
    Dim rs As ADODB.Recordset
    Dim strm As New ADODB.Stream
    Set rs = New ADODB.Recordset
    rs.Open "SELECT TOP 4 au_lname, au_fname FROM Authors", 
"DSN=Pubs;UID=sa;PWD=;", adOpenKeyset, adLockBatchOptimistic
    rs("au_lname") = "Changed Last Name"
    rs.MoveLast
    rs.Delete
    rs.AddNew
    rs("au_lname") = "New Last Name"
    rs("au_fname") = "New First Name"
    rs.Save strm, adPersistXML
    Debug.Print strm.ReadText
End Sub
Модератор:
Тег [src vba]

Если нет, поэксперементироуй с другими провайдерами :-)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Recordset в текстовый файл...
    #35115973
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ADODB GetString:

Код: plaintext
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.
Dim cn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim sSql As String
Dim strA As String
Dim fso As New Scripting.FileSystemObject
Dim txtFile As Scripting.TextStream

With cn
    .ConnectionString = MyConnectionString
    .Open
End With

sSql = "SELECT ... FROM ... WHERE ...;"

rst.Open sSql, cn

Set txtFile = fso.CreateTextFile("C:\Test.txt", True)

txtFile.Write (rst.GetString(adClipString, , "|", _
vbCrLf, ""))
txtFile.Close

Set txtFile = Nothing
rst.Close
Set rst = Nothing
cn.Close
Set cn = Nothing
 
End Sub
...
Рейтинг: 0 / 0
Recordset в текстовый файл...
    #35116552
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аха.... выгрузить.
Подскажите. Хорошо если примером.
Хочу попробовать оптимизировать выгрузку рекордсета в цикле. CopyFromRecordset не поможет, т.к. объемы больше эксельных допустимых 65к.

В XML уже подсказали. Хотя чтобы проблем было поменьше то в XML лучше делать примерно так:

Код: plaintext
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.
Dim cnn As Connection 
Dim com As Command 
Dim str As Stream 
Dim sQuery As String 
Dim doc As IXMLDOMDocument2 

    Set cnn = New Connection 
    cnn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MyDatabase" 

    Set com = New Command 
    com.ActiveConnection = cnn 

    sQuery = "<root><sql:query xmlns:sql='urn:schemas-microsoft-com:xml-sql'>select top 10 * from Files for xml auto</sql:query></root>" 

    Set str = New Stream 
    str.Open 
    str.WriteText sQuery, adWriteChar 
    str.Position =  0  

    Set com.CommandStream = str 
    com.Dialect = "{5D531CB2-E6Ed-11D2-B252-00C04F681B71}" 

    Set doc = New DOMDocument30 
    com.Properties("Output Stream") = doc 
    com.Execute , , adExecuteStream 

    str.Close 

    doc.Save "e:\test2k.xml"
...
Рейтинг: 0 / 0
Recordset в текстовый файл...
    #35119422
Фотография BION
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос>
В XML подойдет?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub Main()
    Dim rs As ADODB.Recordset
    Dim strm As New ADODB.Stream
    Set rs = New ADODB.Recordset
    rs.Open "SELECT TOP 4 au_lname, au_fname FROM Authors", 
"DSN=Pubs;UID=sa;PWD=;", adOpenKeyset, adLockBatchOptimistic
    rs("au_lname") = "Changed Last Name"
    rs.MoveLast
    rs.Delete
    rs.AddNew
    rs("au_lname") = "New Last Name"
    rs("au_fname") = "New First Name"
    rs.Save strm, adPersistXML
    Debug.Print strm.ReadText
End Sub
Модератор:
Тег [src vba]

Если нет, поэксперементироуй с другими провайдерами :-)

Posted via ActualForum NNTP Server 1.4

Прошу прощения, что встреваю в беседу, но у меня к Вам вопрос. Вы здесь показали метод сохранения RecordSet в XML, не подскажете, как эту ХМЛ открыть в новом RecordSet и отправить в таблицу? Полагаю rs.Open ... но какие параметры? База Access.
Спасибо.
...
Рейтинг: 0 / 0
Recordset в текстовый файл...
    #35119640
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСДН
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Public Function RecordsetFromXMLString(sXML As String) As Recordset

    Dim oStream As ADODB.Stream
    Set oStream = New ADODB.Stream    

    oStream.Open
    oStream.WriteText sXML   'Give the XML string to the ADO Stream
    oStream.Position =  0     'Set the stream position to the start

    Dim oRecordset As ADODB.Recordset
    Set oRecordset = New ADODB.Recordset
       
    oRecordset.Open oStream    'Open a recordset from the stream

    oStream.Close
    Set oStream = Nothing

    Set RecordsetFromXMLString = oRecordset  'Return the recordset

    Set oRecordset = Nothing

End Function
...
Рейтинг: 0 / 0
Recordset в текстовый файл...
    #35120183
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В один XML-файл можно записать много-много Recordset-ов. Как и вытащить их оттуда.

В об этом можно поискать по следующим словам:

Код: plaintext
1.
2.
 Set oDomChild = New DOMDocument
 oDomChild.loadXML oDom.getElementsByTagName("RD").Item( 0 ).childNodes(i).xml
 r.Open oDomChild
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Recordset в текстовый файл...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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