Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Закачка данных на MS-SQL Server
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуста, как правильно перекачать на сервер содержимое курсора во временную таблицу (структуры совпадают). * подключаюсь m.pcConnectHeader=SQLSTRINGCONNECT(m.pcConnectString) * создаю временную таблицу m.lcSQL = "CREATE TABLE ##Tab1(Pole1 int, Pole2 varchar(50))" = SQLEXEC(m.pcConnectHeader, m.lcSQL) А вот что дальше? Видел несколько замороченных вариантов с таблицами, но честно говоря без комментариев мало что понял. Мне они показались довольно замороченными. Хочется сделать так чтобы это было быстро, надежно и красиво. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 10:18 |
|
||
|
Закачка данных на MS-SQL Server
|
|||
|---|---|---|---|
|
#18+
Ну например так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 10:59 |
|
||
|
Закачка данных на MS-SQL Server
|
|||
|---|---|---|---|
|
#18+
Спасибо. Работает и понятно. Вот только если данных много тормозить не будет? А можно ли (пардон за наивный вопрос) чтото типа "пакетной обработки" придумать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 12:33 |
|
||
|
Закачка данных на MS-SQL Server
|
|||
|---|---|---|---|
|
#18+
Ну можно еще строку заполняющую временную табличку сделать или передать XML и обработать его средствами сервера...Только врядли удастся добиться ощутимой прибавки производительности.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 13:22 |
|
||
|
Закачка данных на MS-SQL Server
|
|||
|---|---|---|---|
|
#18+
А сколько это много данных и зачем при этом использовать временную таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 13:25 |
|
||
|
Закачка данных на MS-SQL Server
|
|||
|---|---|---|---|
|
#18+
Тут одна проблема нарисовалась. Если много полей, то способ указанный выше не работает. фокс 8.0 кидает сообщение об ошибке. Я прочитал что с таблицами хорошо работает OPENQUERY Но в моем случае запрос не проходит. m.lcSQL = "INSERT INTO ##Tab1 SELECT * FROM " +; "OPENQUERY("+ m.ServerName + ",'SELECT * FROM Cursor1')" = SQLEXEC(m.pcConnectHeader, m.lcSQL) MESSAGE() говорит что: Connectivity error. "Проверьте что путь задан правильно и имеется подключение к серверу на котором находятся файлы" Или этот способ нельзя использовать для курсоров? Так всетаки как проще и красивее экспортировать курсор в таблицу на MS-SQL Servere ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 20:06 |
|
||
|
Закачка данных на MS-SQL Server
|
|||
|---|---|---|---|
|
#18+
Какое сообщение кидает фокс? Проблема может быть только в ограничении 254 символа на консанту. В этом случае надо просто разбивать выражение Код: plaintext 1. Я например в основном использую XML передавая его в хранимую процедуру. Или просто собираю строку содержащую все insert. OPENQUERY в вашем случае не очень удачное решение. Он работает только с локальными данными... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2003, 10:19 |
|
||
|
Закачка данных на MS-SQL Server
|
|||
|---|---|---|---|
|
#18+
По поводу XML Вот пример от Glory CREATE CURSOR test (f1 C(10), f2 N(10,2)) INSERT INTO test VALUES('FFFF', 1.5) INSERT INTO test VALUES('AAAAA', 2.5) myxml = '' ?CursorToXML("test", "m.myxml", 3) ?myxml STORE SQLCONNECT('xxxxxx') TO gnConnHandle ?gnConnHandle ?SQLEXEC(gnConnHandle, "exec dbo.aaa1 '"+myxml+"'") Переменная myxml содержит значение <?xml version = "1.0" encoding="Windows-1252" standalone="yes"?> <VFPData> <row f1="FFFF" f2="1.50"/> <row f1="AAAAA" f2="2.50"/> </VFPData> Хранимая процедура CREATE PROCEDURE dbo.aaa1 @myxml text AS DECLARE @hdoc INT, @ret INT EXEC sp_xml_preparedocument @hdoc OUTPUT, @myxml OUTPUT SELECT * FROM OPENXML(@hdoc, '//row') WITH(field1 nVARCHAR(20) '@f1', field2 decimal(10,2) '@f2') EXEC sp_xml_removedocument @hdoc GO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2003, 10:20 |
|
||
|
Закачка данных на MS-SQL Server
|
|||
|---|---|---|---|
|
#18+
А еще есть безумная идея закачивать данные через SQL-DMO(SQL-DMO входит в стандартный connectivity). Правда временные таблицы через него не видны, или я не нашёл как до них достучаться. А с обычными таблицами работает на ура. Нижеприведённый пример требует наличия таблицы aaa(a1 int, a2 char(50)) в Northwind. 65536 записей закачиваются за считанные секунды. Код: 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. Пример очень приблизительный, но может пригодиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2003, 08:50 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32340259&tid=1597476]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
136ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 265ms |
| total: | 518ms |

| 0 / 0 |
