Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Выгрузка результата в txt
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! У меня головная боль о том, как выгрузить результат выполнения класса в текстовый документ? Со странички собирается необходимая информация, через класс адаптера и шлюз с SQL сервером переданные данные проверяются и возвращаются результаты проверки. Имеющиеся данные и результаты проверки я хочу выгрузить одним файлом по определенному шаблону, который я указал бы в самом классе! Не могу найти в документации, как это сделать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 09:26 |
|
||
|
Выгрузка результата в txt
|
|||
|---|---|---|---|
|
#18+
простой выгрузки данных их класса в текстовый файл по шаблону нету, только если XML для текстового файла вам нужна своя реализация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 09:49 |
|
||
|
Выгрузка результата в txt
|
|||
|---|---|---|---|
|
#18+
Я понимаю. Я и хочу написать свой отдельный метод, который будет вызываться со всеми интересующими параметрами. Вопрос в том, как собрать единый лист с данными, заставить выгрузить данные в текстовый файл, у которого имя будет так же задаваться по шаблону, который я и задам. Пример данных: %Документ Знач1:123 Знач2:456 End% Пример имени файла: name_yyyymmdd_id.txt ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 09:59 |
|
||
|
Выгрузка результата в txt
|
|||
|---|---|---|---|
|
#18+
AlexolissЯ понимаю. Я и хочу написать свой отдельный метод, который будет вызываться со всеми интересующими параметрами. Вопрос в том, как собрать единый лист с данными, заставить выгрузить данные в текстовый файл, у которого имя будет так же задаваться по шаблону, который я и задам. Пример данных: %Документ Знач1:123 Знач2:456 End% Пример имени файла: name_yyyymmdd_id.txt точнее, возможно ли собрать vlist с данными и передать его, как содержимое выгружаемого файла? Если да, то как это сделать!? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 10:02 |
|
||
|
Выгрузка результата в txt
|
|||
|---|---|---|---|
|
#18+
Alexoliss , не понятно в чём собственно ипытываешь проблему... Есть класс %File, его и используй... Код: vbnet 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 10:03 |
|
||
|
Выгрузка результата в txt
|
|||
|---|---|---|---|
|
#18+
Alexoliss , Код класса с использованием %ResultSetInclude (%occStatus,%occConstant,%occErrors) Class sqlru.test { ///<example> ///; Пример вызова: ///do ##class(sqlru.test).SQLExport("C:\data.txt","select 'Bună ziua','Добрый день','Good day' union select 4,5,6",$char(9),"'") ///</example> /// Экспорт данных запроса в текстовый файл. ///<br>Параметры: ///<br><var>FileName</var> - полный путь к файлу (на сервере!); ///<br><var>Query</var> - текст запроса; ///<br><var>Delimiter</var> - разделитель столбцов; ///<br><var>StringQuote</var> - строковая кавычка; ClassMethod SQLExport( FileName As %String, Query As %String, Delimiter As %Char, StringQuote As %Char) As %Status { #dim ex As %Exception.AbstractException set sc=$$$OK try{ if FileName="" $$$ThrowStatus($$$ERROR($$$DirectoryNameRequired)) if ##class(%File).CreateDirectoryChain(##class(%File).GetDirectory(FileName,$$$YES))'=$$$YES $$$ThrowStatus($$$ERROR($$$FileNameInvalid,FileName)) set stream=##class(%Stream.TmpBinary).%New() set rs = ##class(%ResultSet).%New() $$$ThrowOnError(rs.Prepare(Query)) $$$ThrowOnError(rs.Execute()) set len = rs.GetColumnCount() set line = "" for i=1:1:len set line = line_rs.GetColumnName(i)_$select(i'=len:Delimiter,1:"") do stream.Write(line) while rs.Next() { set line = $$$NL for i=1:1:len set line = line_StringQuote_rs.GetData(i)_StringQuote_$select(i'=len:Delimiter,1:"") do stream.Write(line) } set file = ##class(%FileCharacterStream).%New() set file.TranslateTable="Unicode" ;UTF8, CP1251, CP866 и др. set file.Filename=FileName do file.CopyFromAndSave(stream) }catch(ex){ set sc=ex.AsStatus() } quit sc } Classmethod Test() [Internal] { set sc=##class(sqlru.test).SQLExport("C:\data.txt","select 'Bună ziua','Добрый день','Good day' union select 4,5,6",$char(9),"'") write $select($$$ISOK(sc):"OK",1:$system.Status.GetErrorText(sc,"ru")) } } Код класса с использованием %SQL.StatementInclude (%occStatus,%occConstant,%occErrors) Class sqlru.test { ///<example> ///; Пример вызова: ///do ##class(sqlru.test).SQLExport("C:\data.txt","select 'Bună ziua','Добрый день','Good day' union select 4,5,6",$char(9),"'") ///</example> /// Экспорт данных запроса в текстовый файл. ///<br>Параметры: ///<br><var>FileName</var> - полный путь к файлу (на сервере!); ///<br><var>Query</var> - текст запроса; ///<br><var>Delimiter</var> - разделитель столбцов; ///<br><var>StringQuote</var> - строковая кавычка; ClassMethod SQLExport( FileName As %String, Query As %String, Delimiter As %Char, StringQuote As %Char) As %Status { #dim ex As %Exception.AbstractException set sc=$$$OK try{ if FileName="" $$$ThrowStatus($$$ERROR($$$DirectoryNameRequired)) if ##class(%File).CreateDirectoryChain(##class(%File).GetDirectory(FileName,$$$YES))'=$$$YES $$$ThrowStatus($$$ERROR($$$FileNameInvalid,FileName)) set stream=##class(%Stream.TmpBinary).%New() set st = ##class(%SQL.Statement).%New() $$$ThrowOnError(st.%Prepare(Query)) set len = st.%Metadata.columnCount set rs=st.%Execute() set line = "" for i=1:1:len set line = line_st.%Metadata.columns.GetAt(i).colName_$select(i'=len:Delimiter,1:"") do stream.Write(line) while rs.%Next() { set line = $$$NL for i=1:1:len set line = line_StringQuote_rs.%GetData(i)_StringQuote_$select(i'=len:Delimiter,1:"") do stream.Write(line) } set file = ##class(%FileCharacterStream).%New() set file.TranslateTable="Unicode" ;UTF8, CP1251, CP866 и др. set file.Filename=FileName do file.CopyFromAndSave(stream) }catch(ex){ set sc=ex.AsStatus() } quit sc } Classmethod Test() [Internal] { set sc=##class(sqlru.test).SQLExport("C:\data.txt","select 'Bună ziua','Добрый день','Good day' union select 4,5,6",$char(9),"'") write $select($$$ISOK(sc):"OK",1:$system.Status.GetErrorText(sc,"ru")) } } do ##class(sqlru.test).SQLExport("C:\data.txt","select 'Bună ziua','Добрый день','Good day' union select 4,5,6",$char(9),"'") Содержимое data.txt : Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2012, 14:23 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=37645183&tid=1557538]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 360ms |

| 0 / 0 |
