Andrew пишет 15.10.2002 15:03: >Есть проблема >Из программы на CTD 2.0 PTF3 подключаемся к DBF-файлам >Set SqlDatabase='Файлы dBase' >Call SqlConnect( hSqlDBF ) > >Хотим создать таблицу (точнее DBF-файл) >SqlPrepareAndExecute( hSqlDBF, > 'CREATE TABLE myTable ( A1 CHAR( 10 ), A2 NUMERIC( 10, 2 ) )' ) >и программа вылетает с ошибкой 'syntax error in datatype definition', >причем ей не нравится именно NUMERIC( 10, 2 ), >потому что >SqlPrepareAndExecute( hSqlDBF, > 'CREATE TABLE myTable ( A1 CHAR( 10 ), A2 NUMERIC )' ) >прекрасно проходит, но поле A2 - создается типа N( 20, 5 ) >Попытки использовать описание типа NUMBER, DECIMAL, INTEGER, SMALLINT - все прекрасно пока не задаешь точность в скобках (без разницы 1 число или 2 числа через запятую) > >Кстати, в 16-битном SQLWindows`е 5.0.1 проходила команда аналогичная конструкция прекрасно работала. > >Поиски в Internet`е натолкнули меня на мысль что у меня какой-то кривой ODBC-драйвер >На компьютере стоит Windows2000Pro + OfficeXP + CTD2.0 и больше ничего. >Проэмулировал ситуацию через MS Query - результат тот же - пока не задаешь точность все прекрасно, иначе ошибка. >Так что однозначно проблема в ODBC >Может у него синтаксис какой-то другой? > >Заранее спасибо >Андрей > блядь! А где ответы?????
Andrew пишет 15.10.2002 15:03: >Есть проблема >Из программы на CTD 2.0 PTF3 подключаемся к DBF-файлам >Set SqlDatabase='Файлы dBase' >Call SqlConnect( hSqlDBF ) > >Хотим создать таблицу (точнее DBF-файл) >SqlPrepareAndExecute( hSqlDBF, > 'CREATE TABLE myTable ( A1 CHAR( 10 ), A2 NUMERIC( 10, 2 ) )' ) >и программа вылетает с ошибкой 'syntax error in datatype definition', >причем ей не нравится именно NUMERIC( 10, 2 ), >потому что >SqlPrepareAndExecute( hSqlDBF, > 'CREATE TABLE myTable ( A1 CHAR( 10 ), A2 NUMERIC )' ) >прекрасно проходит, но поле A2 - создается типа N( 20, 5 ) >Попытки использовать описание типа NUMBER, DECIMAL, INTEGER, SMALLINT - все прекрасно пока не задаешь точность в скобках (без разницы 1 число или 2 числа через запятую) > >Кстати, в 16-битном SQLWindows`е 5.0.1 проходила команда аналогичная конструкция прекрасно работала. > >Поиски в Internet`е натолкнули меня на мысль что у меня какой-то кривой ODBC-драйвер >На компьютере стоит Windows2000Pro + OfficeXP + CTD2.0 и больше ничего. >Проэмулировал ситуацию через MS Query - результат тот же - пока не задаешь точность все прекрасно, иначе ошибка. >Так что однозначно проблема в ODBC >Может у него синтаксис какой-то другой? > >Заранее спасибо >Андрей > блядь! А где ответы?????
Привет. Насколько я помню, это ошибка драйвера MS. Используй Merant'овские драйвера - они правильно работают ( во всяком случае, работали ) www.merant.com
Andrew пишет 15.10: >Есть проблема >Из программы на CTD 2.0 PTF3 подключаемся к DBF-файлам
Я уже сталкивался с такой проблемой, вся фигня действительно заключается в ODBC- это толи глюк виндусовского драйвера, толи -это их заумный наворот, мы решили эту проблему путем испльзования другого драйвера, чей именно сейчас не помню
Есть проблема Из программы на CTD 2.0 PTF3 подключаемся к DBF-файлам Set SqlDatabase='Файлы dBase' Call SqlConnect( hSqlDBF )
Хотим создать таблицу (точнее DBF-файл) SqlPrepareAndExecute( hSqlDBF, 'CREATE TABLE myTable ( A1 CHAR( 10 ), A2 NUMERIC( 10, 2 ) )' ) и программа вылетает с ошибкой 'syntax error in datatype definition', причем ей не нравится именно NUMERIC( 10, 2 ), потому что SqlPrepareAndExecute( hSqlDBF, 'CREATE TABLE myTable ( A1 CHAR( 10 ), A2 NUMERIC )' ) прекрасно проходит, но поле A2 - создается типа N( 20, 5 ) Попытки использовать описание типа NUMBER, DECIMAL, INTEGER, SMALLINT - все прекрасно пока не задаешь точность в скобках (без разницы 1 число или 2 числа через запятую)
Кстати, в 16-битном SQLWindows`е 5.0.1 проходила команда аналогичная конструкция прекрасно работала.
Поиски в Internet`е натолкнули меня на мысль что у меня какой-то кривой ODBC-драйвер На компьютере стоит Windows2000Pro + OfficeXP + CTD2.0 и больше ничего. Проэмулировал ситуацию через MS Query - результат тот же - пока не задаешь точность все прекрасно, иначе ошибка. Так что однозначно проблема в ODBC Может у него синтаксис какой-то другой?