|
|
|
insert into ... select ... from ...
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста, можно ли с драйверами vfpoledb/vfpodbc использовать что-то подобное select into или insert into tbl1(COL1,COL2) select col1,col2 from tbl2? Такие конструкции не поддерживаются - или может быть там как-то синтаксис немного другой. Или может есть всёже что-то другое дающее подобный результат? У меня проблемма следующего характера: мне нужно наладить импорт/экспорт между 1С и папкой с дбфными таблицами. Причём данные будут гоняться постоянно на автомате через установленные промежутки времени. Т.е. только insert into ... select ... from ... может обеспечить удовлетворительную скорость. А если сделать допустим выборку а потом insert каждой строки по отдельности - то будет очень медленно. Ну и возможность использовать insert from select то есть - если пользовать jet.oledb+extended properties=dBASE IV - токо блин с русским шрифтом получаются глюки :(. При этом все форумы забиты сообщениями, что мол лечится это изменением в реестре ключа HKEY_LOCAL_MACINE/SOFTWARE/Microsoft/Jet/4.0/Engines/XBase/DataCodeP age с OEM на ANSI. Причём там же все рассказывают, что мол они так сделали - и всё нормально заработало - а у меня нихрена :(. Вобщем получается два возможных варианта дальнейших действий: или лечить болезнь с кодировкой у Jet - или думать как сделать то же с vfpoledb/vfpodbc - у которых с кодировкой проблемм нет. Если кто-то что-то на одну из этих тем знает - помогите пожалуйста. Буду очень благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2006, 16:27 |
|
||
|
insert into ... select ... from ...
|
|||
|---|---|---|---|
|
#18+
Собственно сам 9 VFP позволяет такие запросы. а вот насчет OleDb и ODBC - нужно смотреть доку. Но поскольку OleDb появился совместно с 9 - думаю что должно получиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2006, 16:41 |
|
||
|
insert into ... select ... from ...
|
|||
|---|---|---|---|
|
#18+
Такие точно позволяет? У меня они не работают - токо с Jet.OLEDB - а с VFPODBC/VFPOLEDB не работают. Ну тоисть получается что вариант с этими дровами отпадает - остаётся токо с кодировкой - подругому вроде никак. Кто чего знает про кодировку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2006, 16:53 |
|
||
|
insert into ... select ... from ...
|
|||
|---|---|---|---|
|
#18+
Да - что интересно: при попытке выполнить запрос вида insert into tbl1(c1,c2) select c1,c2 from tbl2 выдаёт сообщение об синтаксической ошибке - хотя вроде более уместным было бы сообщение по типу "не поддерживается". Может там синтаксис немного другой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2006, 18:09 |
|
||
|
insert into ... select ... from ...
|
|||
|---|---|---|---|
|
#18+
ODBC от DBASE IV будет нормально работать только с кодовой страницей 866. Т.е. придется как-то ручками конвертировать текст из 1251 в 866. В FoxPro это команда CPCONVERT(), как в 1C - не знаю. Запросы вида INSERT INTO ... SELECT ... появились только в VFP8. В младших версиях FoxPro такого не было. ODBC драйвер для FoxPro самый свежий только для версии VFP6. Это значит, что через ODBC такие запросы точно поддерживаться не будут. Скачай с сайта MicroSoft драйвер OLE DB для VFP9. Он такие запросы должен поддерживать. В принципе, этот драйвер входит в поставку MDAC, кажется еще 2.6 Т.е. если установил на машине MDAC 2.6 или старше, то уже должен быть драйвер OLE DB от VFP9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2006, 18:23 |
|
||
|
insert into ... select ... from ...
|
|||
|---|---|---|---|
|
#18+
Да - vfpoledb поддерживает запросы insert into select. А я сначала что-то не так чтоли делал - или токо на vfpodbc это тестировал. Но select into не работает и на нём - хотя это мне не так важно. Короче получается что vfpoledb мне подходит. Токо один момент есть - мне jet sql роднее :). А тут сразу видна разница в синтаксисе. А где бы читануть про именно sql и всякие там функции преобразования, строковые функции, функции работы с датами и т.п. - т.к. они порядочно отличаются от jet-ных. Я пару угадал помучившись - но так я долго угадывать буду :). Какой то бы мануал чтоли найти гдето. Не вообще по программированию - а токо sql. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2006, 21:26 |
|
||
|
insert into ... select ... from ...
|
|||
|---|---|---|---|
|
#18+
Разработчики FoxPro проделали очень большую работу в VFP9 по приведению синтаксиса Select-SQL в соответствие со стандартом ANSI. Так что, если что-то можно сделать "по стандарту", то, скорее всего, это можно будет сделать и в VFP9. Правда, "чистым" SQL тут не отделаешся. Все равно придется искать "вокруг". Думаю, простейший вариант - это скачать HELP по VFP9. Это файл DV_FoxHelp.chm около 10,5МБ. Правда, где он лежит в свободном доступе - не знаю. Но можно почитать справку On-Line на сайте Microsoft http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/vistoolsanchor.asp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2006, 23:52 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=235&tid=1590772]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
31ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 310ms |

| 0 / 0 |
