Создание таблицы FoxPro из MsSql

SQLMantis
Дата: 26.01.2009 17:00:52
Привет!
Сервер - MSSQL 2005
Через провайдер vfpoledb пытаюсь создать таблицу.

declare @p varchar(30)
set @p = '''C:\dbf'';'''';'''''
EXECUTE('SELECT * FROM OPENROWSET(''vfpoledb'','+@p+',''execscript("CREATE TABLE bum (a1 int, a2 int, a3 int,a4 int,a5 int,a6 int,a7 int,a8 int,a9 int,a10 int,a11 int,a12 int,a13 int,a14 int,a15 int,a16 int,a17 int,a18 int,a19 int,a20 int,a21 int,a22 int,a23 int,a24 int,a25 int,a26 int,a27 int,a28 int,a29 int,a30 int)")'')')

Все работает. Таблица создана.
Стоит мне добавить еще одно поле (a31 int), как начинается ругань

OLE DB provider "vfpoledb" for linked server "(null)" returned message "Command contains unrecognized phrase/keyword.".

Ограничение на кол-во полей, длинну запроса в openrowset/execute ?
Сталкивался кто с подобным?

Спасибо!
Glory
Дата: 26.01.2009 17:02:52
Вам же vfpoledb ясно сказал - Command contains unrecognized phrase/keyword
Обратитесь в справочник vfp за синтаксисом команд
SQLMantis
Дата: 26.01.2009 17:13:05
Glory
Вам же vfpoledb ясно сказал - Command contains unrecognized phrase/keyword
Обратитесь в справочник vfp за синтаксисом команд


Синтаксис правильный, смотрел.
Ко всему прочему, если добавить поле a31 и при этом убрать a1
запрос работает без ошибок.
Логично предположить что не в синтаксисе дело ?
Гавриленко Сергей Алексеевич
Дата: 26.01.2009 17:14:09
SQLMantis
Синтаксис правильный, смотрел.
Ко всему прочему, если добавить поле a31 и при этом убрать a1
запрос работает без ошибок.
Логично предположить что не в синтаксисе дело ?
Логично спросить об этом на форуме по Fox Pro.
Glory
Дата: 26.01.2009 17:15:43
SQLMantis
Glory
Вам же vfpoledb ясно сказал - Command contains unrecognized phrase/keyword
Обратитесь в справочник vfp за синтаксисом команд


Синтаксис правильный, смотрел.
Ко всему прочему, если добавить поле a31 и при этом убрать a1
запрос работает без ошибок.
Логично предположить что не в синтаксисе дело ?

Смотрели где ? А проверяли где ?
Разумеется не в синтаксисе. Текст сообщения об ошибке всегда специально составляют неправильным. Чтобы осложнить жизнь программиста
проходящий.
Дата: 26.01.2009 17:16:23
SQLMantis
Glory
Вам же vfpoledb ясно сказал - Command contains unrecognized phrase/keyword
Обратитесь в справочник vfp за синтаксисом команд


Синтаксис правильный, смотрел.
Ко всему прочему, если добавить поле a31 и при этом убрать a1
запрос работает без ошибок.
Логично предположить что не в синтаксисе дело ?

Логично предполжить, что превышена максимальная длина строковой констнты.
Сделай примерно так:
EXECUTE('SELECT * FROM OPENROWSET(''vfpoledb'','+@p+',''execscript("CREATE TABLE bum (a1 int, a2 int, a3 int,a4 int,a5 int,a6 int,a7 int,a8 int,a9 int,a10 int,;"+chr(13)+chr(10)+"a11 int,a12 int,a13 int,a14 int,a15 int,a16 int,a17 int,a18 int,a19 int,a20 int,;"+chr(13)+chr(10)+"a21 int,a22 int,a23 int,a24 int,a25 int,a26 int,a27 int,a28 int,a29 int,a30 int)")'')')
SQLMantis
Дата: 26.01.2009 17:21:05
проходящий.

Логично предполжить, что превышена максимальная длина строковой констнты.
Сделай примерно так:
EXECUTE('SELECT * FROM OPENROWSET(''vfpoledb'','+@p+',''execscript("CREATE TABLE bum (a1 int, a2 int, a3 int,a4 int,a5 int,a6 int,a7 int,a8 int,a9 int,a10 int,;"+chr(13)+chr(10)+"a11 int,a12 int,a13 int,a14 int,a15 int,a16 int,a17 int,a18 int,a19 int,a20 int,;"+chr(13)+chr(10)+"a21 int,a22 int,a23 int,a24 int,a25 int,a26 int,a27 int,a28 int,a29 int,a30 int)")'')')


Благодарю! Заработало