Возникла потребность сохранять выгрузки из sql. Выгрузка содержит более млн строк, поэтому excel не катит. На примете csv (предпочтительней) или xml файлы. Для сохранения в csv пытался использовать код:
CSVData = RecordsetToCSV(oRS, True)
Open"C:\MyFileName.csv"For Binary Access WriteAs #1 Put #1, , CSVData Close #1
PublicFunction RecordsetToCSV(oRS, _ Optional ShowColumnNames AsBoolean = True, _ Optional NULLStr AsString = "") AsString Dim K AsLong, RetStr AsString If ShowColumnNames Then For K = 0To oRS.Fields.Count - 1
RetStr = RetStr & ",""" & oRS.Fields(K).Name & """" Next K
RetStr = Mid(RetStr, 2) & vbNewLine EndIf
Да и кажется мне, что этот вариант будет оч долгим, по сравнению со следующим: Команда:
myRecordset.Save "C:\yourFile.xml", adPersistXML
Отлично, быстро сохраняет в файл, НО потом у меня ни как не получается прочитать этот файл .notepad++ открывает одни кракозябры, перепробовал много разных кодировок, ничего не получается. Пытался подключиться PowerQwery, так же безрезультатно, выдает ошибку.
Доброго дня.
Возникла потребность сохранять выгрузки из sql. Выгрузка содержит более млн строк, поэтому excel не катит. На примете csv (предпочтительней) или xml файлы. Для сохранения в csv пытался использовать код:
CSVData = RecordsetToCSV(oRS, True)
Open"C:\MyFileName.csv"For Binary Access WriteAs #1 Put #1, , CSVData Close #1
PublicFunction RecordsetToCSV(oRS, _ Optional ShowColumnNames AsBoolean = True, _ Optional NULLStr AsString = "") AsString Dim K AsLong, RetStr AsString If ShowColumnNames Then For K = 0To oRS.Fields.Count - 1
RetStr = RetStr & ",""" & oRS.Fields(K).Name & """" Next K
RetStr = Mid(RetStr, 2) & vbNewLine EndIf
Да и кажется мне, что этот вариант будет оч долгим, по сравнению со следующим: Команда:
myRecordset.Save "C:\yourFile.xml", adPersistXML
Отлично, быстро сохраняет в файл, НО потом у меня ни как не получается прочитать этот файл .notepad++ открывает одни кракозябры, перепробовал много разных кодировок, ничего не получается. Пытался подключиться PowerQwery, так же безрезультатно, выдает ошибку.TD_MElec
Сообщение отредактировал TD_MElec - Понедельник, 21.03.2022, 10:54
Удалил все параметры из .GetString и дело пошло. В CSV сохраняет. НО большой массив данных, как раз на этапе .GetString зависает на очень продолжительное время (30+ минут).
Решил вопрос переводом RecordSet в array и от туда уже запись в текстовый файл. Опять таки есть "НО", процедура записи 3,7 млн строк занимает чуть более 4 минут, а процедура сохранения Recordset.Save "C:\yourFile.xml", adPersistXML чуть больше 10 сек. Явное преимущество. Но ни как не удается сделать xml читабельным, перепробовал все параметры .save
Может кто знает как правильно RecordSet сохранять в XML?
Удалил все параметры из .GetString и дело пошло. В CSV сохраняет. НО большой массив данных, как раз на этапе .GetString зависает на очень продолжительное время (30+ минут).
Решил вопрос переводом RecordSet в array и от туда уже запись в текстовый файл. Опять таки есть "НО", процедура записи 3,7 млн строк занимает чуть более 4 минут, а процедура сохранения Recordset.Save "C:\yourFile.xml", adPersistXML чуть больше 10 сек. Явное преимущество. Но ни как не удается сделать xml читабельным, перепробовал все параметры .save
Может кто знает как правильно RecordSet сохранять в XML?TD_MElec