|
|
|
Подскажите код по заполнению таблиц, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Всем доброго времени суток. Подскажите пожалуйста пример кода, который будет делать следующее: По полю "Nomer" в dbf-таблице искать сначала строчку со значением "0" и записывать в таблицу на MSSQL значение полня "Name" той строки, где Nomer имеет значение ноль. А потом записать в курсор номер этой записи в таблице MSSQL, а потом записать все остальные значения поля "Name" из dbf-таблице. Т.е. так: Таблица dbf: Nomer Name 0 Учебники 1 Химия 2 Физика 3 Геометрия 4 Черчение 5 Литература А так должна выглядеть таблица в MSSQL После заполнения: id_cls id_supper_cls cls_name 123 Null Учебники 124 123 Химия 125 123 Физика 126 123 Геометрия 127 123 Черчение 128 123 Литература Нужно найти сначала родительскую запись под номером ноль в dbf-таблице и записать ее, потом с ее номером в качестве значения id_supper_cls записывать все остальные записи. Помогите пожалуйста! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 13:15 |
|
||
|
Подскажите код по заполнению таблиц, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Какую технологию работы с SQL Server вы используете? (CA, PT, RV) С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 13:55 |
|
||
|
Подскажите код по заполнению таблиц, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Вот, поясню сразу, а то забыла указать в первом посте: id_cls - генерируется само при заполнении, а значение "123" я дала просто для наглядности. Т.е. нужно закинуть из dbf-ки одну строчку, ей MSSQL даст сам значение id_cls, id_supper_cls будет нулл, а потом мы это значение считываем в курсор и дальше заполняем, где уже берем значение из курсора и для остальных записей присваиваем это значение в качестве id_supper_cls. Только как это программно сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 13:55 |
|
||
|
Подскажите код по заполнению таблиц, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Aleksey-K, извините, но я только начинаю этим заниматься и немного не разбираюсь в терминалогии. Для соединения с сервером я пользуюсь таким кодом: gnConnect=SQLSTRINGCONNECT("Driver=SQL Native Client;SERVER=название сервера;Trusted_Connection=NO;APP=Microsoft Visual FoxPro;UID=sa;PWD=пасс;") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 13:58 |
|
||
|
Подскажите код по заполнению таблиц, пожалуйста
|
|||
|---|---|---|---|
|
#18+
А таблица на SQL севере уже есть ? С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 15:11 |
|
||
|
Подскажите код по заполнению таблиц, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Да, база есть, таблицы все есть (в том числе и та, про которую тут идет речь), только она не заполнена :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 15:19 |
|
||
|
Подскажите код по заполнению таблиц, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Тогда проще всего создать на сервере хранимую процедуру и вызывать ее в цикле с клиента с передачей ей полей dbf - файла. Если у вас не получится ее написать, то напишите - помогу. С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 15:47 |
|
||
|
Подскажите код по заполнению таблиц, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Дело в том, что уже некоторые таблицы из этой базы были заполнены с помощью создания курсоров и дальнейшего заполнения таблиц по ним. И дальнейшее заполнение крайне желательно было бы реализовать через курсор. Представляю я себе это так: Сначала заполняем первую строчку в таблице на sql-сервере, потом id_cls этой строчки считываем в курсор созданный в фоксе, потом из этого курсора этим значением заполняем поле id_supper_cls в таблице на сервере для всех остальных значений при дальнейшем заполнении. Т.е. реализация как бы в два подхода. Но с кодом у меня проблемы, знаний не хватает :( А что есть хранимая процедура?) извините, я не давно начала заниматься базами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 15:58 |
|
||
|
Подскажите код по заполнению таблиц, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Ваша таблица на сервере - это типичная иерархическая таблица с одним уровнем вложения. Для исключения ошибок при добавлении, в правильном порядке добавлять записи, т.е. сначала "родителя", а потом его "детей". С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 16:01 |
|
||
|
Подскажите код по заполнению таблиц, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Ну, да. Это я понимаю, что нужно сначала добавлять запись "родителя" (благо он в данном случае 1), а потом остальные записи. Только я не знаю как. Покажите пожалуйста пример кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 16:20 |
|
||
|
Подскажите код по заполнению таблиц, пожалуйста
|
|||
|---|---|---|---|
|
#18+
Ну например так: 1. Клиентская сторона: *-- T1 - ваша таблица *-- Я в своих приложениях использую ODBC для работы с SQL Server (Driver=SQL Server) *-- В примере использую вашу строку подключения к SQL серверу. Судя по всему у вас SQL 2005 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Таблица называется Table1 Ее DDL команда может выглядить, например, так: Код: plaintext 1. 2. 3. 4. Код: 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. Удачи! С уважением, Алексей P.S. Код написан с учетом того, что у вас только одна запись корневого уровня и уровень вложения = 1 P.P.S. Для записи данных на сервер я использую технологию pass-through (PT) P.P.P.S. Советую все-таки самому изучить язык MS SQL Server - Transact-SQL (T-SQL) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2007, 10:19 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34548208&tid=1589272]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 492ms |

| 0 / 0 |
