|
|
|
Добавление данных в базу MSSQL2005
|
|||
|---|---|---|---|
|
#18+
Подскажите, пожалуйста, есть ли способ, обращаясь к MSSQL серверу, добавлять данные в таблицу на сервере не построчно (не SQLEXEC(nh,"INSERT INTO base VALUES ('a','b'))). Есть необходимость ежедневно из фокса переносить данные из фоксовой таблицы в SQL'ную. Проблема в том, что данные построчно переносятся очень долго, а другого способа я пока не нашёл. Вот что тупо хочется, так это передать всю таблицу в SQL, а там (в хранимке ли, иль ещё каким способом) добавлять в таблицу. Просьба ногами не пинать и не мучить сильно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 10:16 |
|
||
|
Добавление данных в базу MSSQL2005
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 10:22 |
|
||
|
Добавление данных в базу MSSQL2005
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 11:02 |
|
||
|
Добавление данных в базу MSSQL2005
|
|||
|---|---|---|---|
|
#18+
Можно использовать Linked Server c VFP OleDbProvider - дале пишется job (обычно вызов SP) и через положенные интервалы времени происходит добавление данных в базу данных MS SQL Server... Это очень просто, не поленитесь изучить один раз, потом можно лего все это использовать постоянно :) Good luck! P.S. В SP используется привычный нам синтаксис - INSERT (SQL) FROM... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 12:16 |
|
||
|
Добавление данных в базу MSSQL2005
|
|||
|---|---|---|---|
|
#18+
Я использую пакеты DTS. Просто и надежно как отбойный молоток, и кстати так же можно поместить в JOB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 12:48 |
|
||
|
Добавление данных в базу MSSQL2005
|
|||
|---|---|---|---|
|
#18+
Sergey ChМожно использовать Linked Server c VFP OleDbProvider - дале пишется job (обычно вызов SP) и через положенные интервалы времени происходит добавление данных в базу данных MS SQL Server... Это очень просто, не поленитесь изучить один раз, потом можно лего все это использовать постоянно :) Линкед сервер использовал в проекте на C# - это несложно. В данном случае на фоксе задача не позволяет его использовать, так как данные в SQL нужно добавлять из файлов со случайными именами на базе SYS(2015), так что в момент запуска job'а я не буду иметь представление об именах таблиц. Sergey ChP.S. В SP используется привычный нам синтаксис - INSERT (SQL) FROM... В данном контексте не понял "SP" - это что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 14:04 |
|
||
|
Добавление данных в базу MSSQL2005
|
|||
|---|---|---|---|
|
#18+
ДекораторЯ использую пакеты DTS. Просто и надежно как отбойный молоток, и кстати так же можно поместить в JOB. А про это можно подробнее узнать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 14:06 |
|
||
|
Добавление данных в базу MSSQL2005
|
|||
|---|---|---|---|
|
#18+
В ветке MS SqlServer поиск по DTS решит все ваши проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 14:07 |
|
||
|
Добавление данных в базу MSSQL2005
|
|||
|---|---|---|---|
|
#18+
Учу T-SQL Sergey ChP.S. В SP используется привычный нам синтаксис - INSERT (SQL) FROM... В данном контексте не понял "SP" - это что? Не сразу сообразил, что вы имели в виду хранимые процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 14:08 |
|
||
|
Добавление данных в базу MSSQL2005
|
|||
|---|---|---|---|
|
#18+
ДекораторВ ветке MS SqlServer поиск по DTS решит все ваши проблемы. А термин расшифровать можете? А то там информации много, но отвечающие и спрашивающие считают, что всё это всем известно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 14:20 |
|
||
|
Добавление данных в базу MSSQL2005
|
|||
|---|---|---|---|
|
#18+
Учу T-SQL Линкед сервер использовал в проекте на C# - это несложно. В данном случае на фоксе задача не позволяет его использовать, так как данные в SQL нужно добавлять из файлов со случайными именами на базе SYS(2015), так что в момент запуска job'а я не буду иметь представление об именах таблиц... Какая ерунда - Вы босс, соответсвенно можно давать осмысленные имена на базе, например, интервалов времени а в C# легко можно прочитать, что добавлять, затем через вызов SP в качестве параметра передавать имя файла... P.S. В MS SQL Server 2005 можно все прямо сделать в самом сервере, так как он поддерживает .NET 2.0 (хотя меня смутно терзают соменения, что что-то подобное можно сделать и через DTS (то есть нам не надо изобретать велосипед)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 14:21 |
|
||
|
Добавление данных в базу MSSQL2005
|
|||
|---|---|---|---|
|
#18+
В принципе, Sergey Sizov дал уже ссылку на работу через XML строку с набором данных Но можешь еще тут посмотреть: http://www.caws.atnet.ru/vfox/sql3.html#sql_tabl_ref Вариант с XML там тоже рассматривается. С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 20:41 |
|
||
|
Добавление данных в базу MSSQL2005
|
|||
|---|---|---|---|
|
#18+
Учу T-SQL ДекораторВ ветке MS SqlServer поиск по DTS решит все ваши проблемы. А термин расшифровать можете? А то там информации много, но отвечающие и спрашивающие считают, что всё это всем известно :) В MS SQL Server 2005 он заменен на Integration Services (SSIS) ... MSDNIntegration Services is a platform for building high performance data integration and workflow solutions, including extraction, transformation, and loading (ETL) operations for data warehousing. Integration Services includes graphical tools and wizards for building and debugging packages; tasks for performing workflow functions such as FTP operations, SQL statement execution, and e-mail messaging; data sources and destinations for extracting and loading data; transformations for cleaning, aggregating, merging, and copying data; a management service, the Integration Services service, for administering Integration Services packages; and application programming interfaces (APIs) for programming the Integration Services object model. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 21:22 |
|
||
|
Добавление данных в базу MSSQL2005
|
|||
|---|---|---|---|
|
#18+
Aleksey-KВ принципе, Sergey Sizov дал уже ссылку на работу через XML строку с набором данных Но можешь еще тут посмотреть: http://www.caws.atnet.ru/vfox/sql3.html#sql_tabl_ref Вариант с XML там тоже рассматривается. Уже поглядел :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 21:53 |
|
||
|
Добавление данных в базу MSSQL2005
|
|||
|---|---|---|---|
|
#18+
Подскажите ещё такой момент: на SQL сервере есть процедура, которая принимает идентификатор записи и другие параметры и, в зависимости от наличия такого идентификатора в таблице, либо делает UPDATE либо INSERT. Эта процедура работает без нареканий. Теперь в другой процедуре я принимаю параметром XML, сформированный CURSORTOXML и создаю временную таблицу SELECT ... OPENXML ... INTO #_temp. Теперь есть желание передать каждую строку из полученной временной таблицы в вышеописанную процедуру. Как это правильно сделать? Надо организовать во второй процедуре какой-то цикл (как?)? Или можно написать что-то вроде EXECUTE my_Procedure SELECT f1,f2,f3 FROM #_temp? Помогите найти оптимальное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2007, 14:38 |
|
||
|
Добавление данных в базу MSSQL2005
|
|||
|---|---|---|---|
|
#18+
Учу T-SQLПодскажите ещё такой момент: на SQL сервере есть процедура, которая принимает идентификатор записи и другие параметры и, в зависимости от наличия такого идентификатора в таблице, либо делает UPDATE либо INSERT. Эта процедура работает без нареканий. Теперь в другой процедуре я принимаю параметром XML, сформированный CURSORTOXML и создаю временную таблицу SELECT ... OPENXML ... INTO #_temp. Теперь есть желание передать каждую строку из полученной временной таблицы в вышеописанную процедуру. Как это правильно сделать? Надо организовать во второй процедуре какой-то цикл (как?)? Или можно написать что-то вроде EXECUTE my_Procedure SELECT f1,f2,f3 FROM #_temp? Помогите найти оптимальное решение. Я думаю, что самое простое, это организовать цикл с помощью серверного курсора в первой процедуре по временной таблице, которая была заполнена через OPENXML, а при вызове второй, использовать переменные, которые заполняет команда FETCH. Кстати, в этом случае совсем не обязательно создавать временную таблицу. Можно курсор организовать по результатам запроса к OPENXML. Например: Код: 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. 46. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2007, 19:15 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34856920&tid=1588666]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 362ms |

| 0 / 0 |
