Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Recordset в текстовый файл... / 8 сообщений из 8, страница 1 из 1
07.02.2008, 09:29
    #35115684
аха.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset в текстовый файл...
... выгрузить.
Подскажите. Хорошо если примером.
Хочу попробовать оптимизировать выгрузку рекордсета в цикле. CopyFromRecordset не поможет, т.к. объемы больше эксельных допустимых 65к.
...
Рейтинг: 0 / 0
07.02.2008, 10:21
    #35115883
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset в текстовый файл...
Тынц.
Не уверен, что сработает, но попробовать стоит. cnFrom - соединение с твоей базой, cnTo - ODBC-соединение с текстовым файлом.
...
Рейтинг: 0 / 0
07.02.2008, 10:24
    #35115894
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset в текстовый файл...
> Автор: аха.
> ... выгрузить.
> Подскажите. Хорошо если примером.
> Хочу попробовать оптимизировать выгрузку рекордсета в цикле.
> 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
07.02.2008, 10:38
    #35115973
%?*?%
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset в текстовый файл...
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
07.02.2008, 12:31
    #35116552
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset в текстовый файл...
аха.... выгрузить.
Подскажите. Хорошо если примером.
Хочу попробовать оптимизировать выгрузку рекордсета в цикле. 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
08.02.2008, 12:25
    #35119422
BION
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset в текстовый файл...
Игорь Горбонос>
В 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
08.02.2008, 13:10
    #35119640
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset в текстовый файл...
МСДН
Код: 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
08.02.2008, 14:58
    #35120183
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Recordset в текстовый файл...
В один XML-файл можно записать много-много Recordset-ов. Как и вытащить их оттуда.

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

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


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