|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
Добрый день! Пытаюсь реализовать импортирование данных из таблицы ds204079 в таблицу dogovor. Добавляться должны только те данные, которых нет в таблице dogovor. Пробовал делать так: INSERT INTO dogovor (ndog,name) SELECT ndog,name FROM ds204079 WHERE ds204079.ndog NOT in (SELECT ndog FROM dogovor) В итоге VFP7 ругает на ошибку "Internal consistency error". Добавляется только одна запись. Мне кажется, что это из-за того, что таблица открывается дважды - INSERTом и SELECTом. Как упростить? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 01:15 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
Vady Пытаюсь реализовать импортирование данных из таблицы ds204079 в таблицу dogovor. Добавляться должны только те данные, которых нет в таблице dogovor. У меня, к сожалению, нет VFP7, есть только VFP5 и VFP9. Под VFP9 прекрасно работает : Код: plaintext 1. 2.
Но под VFP5 этот вариант не прошел. Если у вас не пойдет и на VFP7, то попробуйте немного более упрощенный вариант : Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 07:09 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
reware, в VFP7 ваш первый вариант не прокатил с ошибкой "Internal consistency error". А во втором варианте два отдельных запроса или один целый? И то и другое не катит:( ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 10:36 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
"Если ничего не помогает, прочтите, наконец, инструкцию" (с) HELP VFP7 INSERT – SQL Command Appends a record to the end of a table that contains the specified field values. INSERT INTO dbf_name [(fname1 [, fname2, ...])] VALUES (eExpression1 [, eExpression2, ...]) -or- INSERT INTO dbf_name FROM ARRAY ArrayName | FROM MEMVAR Как видите, синтаксиса вида INSERT INTO ... SELECT ... FROM в версии VFP7 просто не существует. Он был введен только в VFP8. Однако у команды INSERT-SQL есть альтерантива в виде команды APPEND FROM. Т.е. логика такая Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 10:58 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
Vady reware, в VFP7 ваш первый вариант не прокатил с ошибкой "Internal consistency error". А во втором варианте два отдельных запроса или один целый? И то и другое не катит:( Ну коль возможности SQL в VFP7 ограничены по сравнению с VFP9, то вам следует воспользоваться советом ВладимирМ и применить тривиальный APPEND. Если пойти еще дальше, можно и вовсе обойтись без SELECT-SQL :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 11:11 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
Уже снес VFP7, поставил VFP9. Ничего не изменилось, все те же ошибки :( Где следует искать причину? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 16:51 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
VadyУже снес VFP7, поставил VFP9. Ничего не изменилось, все те же ошибки :( Где следует искать причину?В зацикливании на Where not in (select ...) Есть еще Join-ы. В частности, Left join в сочетании с where isnull() ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 17:05 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
Guest , что-то не врублюсь, как join-ом и null-ом можно добавлять недостающие в таблице записи. Примерчик плиз! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 17:11 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
Vady Guest , что-то не врублюсь, как join-ом и null-ом можно добавлять недостающие в таблице записи. Примерчик плиз!Для получения примерчика потрудитесь составить скрипт создания таблиц и наполнения их тестовыми данными. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 17:20 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
Пробовал даже вариант: Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 17:24 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
VadyУже снес VFP7, поставил VFP9. Ничего не изменилось, все те же ошибки :( Где следует искать причину? ??? Вот прям сейчас беру и спокойно выполняю : Код: plaintext 1. 2.
Но - у меня VFP9 с SP2. Может в этом дело ? Детально не смотрел изменения, вносимые вторым сервис-паком. Поставьте SP2 на VFP9. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 19:15 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
Поставил SP2, тоже не катит. Сдаюсь теперь!:( ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 20:57 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
А по-отдельности части запроса работают? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 21:00 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
Смотрю, даже обыкновенный insert into - values не хочет пахать. Только select пашет на ура... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 21:05 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
А что ты вставляешь? Может, в данных причина? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 21:08 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
INSERT INTO dogovor (ndog,name) VALUES ('111','222') Типы данных полей - character с длиной 8 и 120 символов соответственно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 21:12 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
VadyINSERT INTO dogovor (ndog,name) VALUES ('111','222') Типы данных полей - character с длиной 8 и 120 символов соответственно. Тогда я тоже сдаюсь. Ну чудес-то не бывает. Я, правда, гонял на таблицах с символьными полями ndog и name длиной 10. Народ, кто-нить может у себя на VFP9 ЭТО проверить ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 21:20 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
Уже нашел причину! Оказалось, таблицу dogovor создал средствами BDE в Delphi, в итоге VFP выдал ошибку, после добавления одной записи. Создал аналогичную таблицу при помощи VFP, выполнил запрос и ура! Если можно продолжить тему, то скажите пожалуйста, каким компонентом Delphi лучше использовать для работы с данными FoxPro и как прикрутить драйвер FoxPro9? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 21:23 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
OLEDB Provider ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 21:29 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
VadyУже нашел причину! Оказалось, таблицу dogovor создал средствами BDE в Delphi, в итоге VFP выдал ошибку, после добавления одной записи. Создал аналогичную таблицу при помощи VFP, выполнил запрос и ура! Если можно продолжить тему, то скажите пожалуйста, каким компонентом Delphi лучше использовать для работы с данными FoxPro и как прикрутить драйвер FoxPro9? #$@^%$$$% !!! Я-бы даже крепче сказал. НИКОГДА не работайте посредством FoxPro с DBF, созданными в Дельфи. У меня давно такое ощущение, что эти самые дельфийские псевдо-DBF понимаются исключительно только самой Дельфи. Слава богу, вам полегчало :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 21:31 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
rewareVadyУже нашел причину! Оказалось, таблицу dogovor создал средствами BDE в Delphi, в итоге VFP выдал ошибку, после добавления одной записи. Создал аналогичную таблицу при помощи VFP, выполнил запрос и ура! Если можно продолжить тему, то скажите пожалуйста, каким компонентом Delphi лучше использовать для работы с данными FoxPro и как прикрутить драйвер FoxPro9? #$@^%$$$% !!! Я-бы даже крепче сказал. НИКОГДА не работайте посредством FoxPro с DBF, созданными в Дельфи. У меня давно такое ощущение, что эти самые дельфийские псевдо-DBF понимаются исключительно только самой Дельфи. Слава богу, вам полегчало :) Да, я работаю с Дельфи, а фокспро использую для тестирования запросов, если в Дельфи команды не идут. Вот так вот! Уже усвоил урок на будущее! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 21:39 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
VadyЕсли можно продолжить тему, то скажите пожалуйста, каким компонентом Delphi лучше использовать для работы с данными FoxPro и как прикрутить драйвер FoxPro9? Я только не пойму, зачем создавать таблицы в Delphi, чтобы потом работать с ними в VFP (и наоборот). К слову - как-то случайно залез в дельфийский форум и увидел тему насчет создания DBF. Заинтересовался и ... был в шоке. В приведенном там кусочке Delphi-кода даже профану (но спецу по FoxPro) было видно, что при создании таблицы почему-то задавались нулевые длины символьных полей. Я прикинулся вещмешком и спросил их "это как ?". На что получил очень "логичный" ответ - "А Delphi сама знает, какие надо". ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 21:43 |
|
Помогите составить запрос INSERT+SELECT
|
|||
---|---|---|---|
#18+
rewareсоздавать таблицы в Delphi, чтобы потом работать с ними в VFP (и наоборот). К слову - как-то случайно залез в дельфийский форум и увидел тему насчет создания DBF. Заинтересовался и ... был в шоке. В приведенном там кусочке Delphi-кода даже профану (но спецу по FoxPro) было видно, что при создании таблицы почему-то задавались нулевые длины символьных полей. Я прикинулся вещмешком и спросил их "это как ?". На что получил очень "логичный" ответ - "А Delphi сама знает, какие надо". :D На Дельфи, считаю, вполне реально поднять подобное, чтобы можно работать с VFP (и наоборот) - для этого нужно просто задействовать родные VFP драйвера. Ладно, пойду поискать, где его достать и как его прикрутить к нему. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2009, 22:00 |
|
|
start [/forum/topic.php?fid=41&msg=36167022&tid=1586116]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 149ms |
0 / 0 |