![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADO, dBASE, create table: ошибка синтаксиса при определении поля. [D6, dBase, FoxPro]
alex_1234 © (2005-10-10 14:46:00)Строка подключения:
dbIK.ConnectionString:=
'Provider=MSDASQL.1;Persist Security Info=False;'+
'Extended Properties="DSN=Ôàéëû dBASE;DBQ='+
PathIK+';DefaultDir='+PathIK+';DriverId=533;'+
'MaxBufferSize=2048;PageTimeout=5;"';
где PathIK - содержит путь к папке с таблицами.
При попытке выполнить запрос:
q2.Close;
q2.SQL.Clear;
q2.SQL.Add('CREATE TABLE PLUCASH(');
q2.SQL.Add('ARTICUL char(30),');
q2.SQL.Add('NAME char(80),');
q2.SQL.Add('MESURIMENT char(10),');
q2.SQL.Add('MESPRESISI NUMERIC(16,6)');
q2.SQL.Add(')');
q2.ExecSQL;
ругается следующим макаром:
....Ошибка синтаксиса в инструкции CREATE TABLE....
alex_1234 (2005-10-11 17:53:00) [1]Да я бы все на БДЕ делал-бы (да и в комплект 4 СуперМага она входит), но она не хочет делать один запрос (4 таблички вяжутся, правда весьма несложно) - ругается на индексный файл (таблица Фокса)....
sniknik (2005-10-11 17:39:00) [2]> был еще БДЕ, а тут его не будет...
будет!!! ;о)) оно живее всех живых. Jet использует BDE. полное если стоит, либо урезаное(лайт версия унутрях) если нет.
alex_1234 (2005-10-11 16:23:00) [3]Блин, как бы мне этого не хотелось - а пришлось делать через "ж..у":
dbMag.ConnectionString:=
'Provider=MSDASQL.1;Persist Security Info=False;'+
'Extended Properties="DSN=Òàáëèöû Visual FoxPro;UID=;'+
'SourceDB='+PathMag+';SourceType=DBF;Exclusive=No;'+
'BackgroundFetch=Yes;Collate=Machine;Null=Yes;'+
'Deleted=Yes;"';
dbIK.ConnectionString:=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+PathIK+
';Extended Properties=dBase IV;Persist Security Info=False';
т.е. для разных запросов - разные типы полключения:
для таблиц FoxPro - MSDASQL,
а для dBase - Microsoft.Jet.OLEDB
Утешает, что в предыдущих версиях был еще БДЕ, а тут его не будет...
Anatoly Podgoretsky (2005-10-10 18:55:00) [4]Reindeer Moss Eater © (10.10.05 16:58) [8]
Не судя по всему, а так и есть MSDASQL
Reindeer Moss Eater (2005-10-10 16:58:00) [5]Судя по всему у тебя провайдер использует ODBC.
Вот и посмотри как по стандарту ODBC зовется такое поле.
Reindeer Moss Eater (2005-10-10 16:56:00) [6]Но ведь не может быть такого, чтобы в ADO не было аналогичного типа....
Почему не может? Может. Зависит от завихрений автора используемого провайдера. Кроме того, этот типа там может просто называться по другому.
alex_1234 (2005-10-10 16:04:00) [7]mr.il : писал - не выходит каменный цветок.
Попробую как писал sniknik - а вдруг "съест"
mr.il (2005-10-10 15:47:00) [8]Попробуй прописать название таблицы с расширением - PLUCASH.dbf.
sniknik (2005-10-10 15:38:00) [9]> CREATE TABLE PLUCASH ... ARTICUL ...
;о) супермаг dos. ;о)
просто
MESPRESISI NUMERIC
и все без всяких (16,6). поддерживается только емулируемый тип (под double) с размерностью 20,5 который и будет создан по умолчанию. без указаний.
но это тебе конечно не поможет. -> супермаг... %о)
> в каком хлп-файле нарыть типы полей поддерживаемых АДО...
Jet - JETSQL40.CHM. а АДО поддерживает все что поддерживает подключаемый драйвер/провайдер. кроме разных мелких :) досадных недоразумений. (бигинт...)
alex_1234 (2005-10-10 15:00:00) [10]Но ведь не может быть такого, чтобы в ADO не было аналогичного типа....
Подскажите, в каком хлп-файле нарыть типы полей поддерживаемых АДО...
Reindeer Moss Eater (2005-10-10 14:56:00) [11]А БДЕ - (СКуэЛь експлорер) - все прекрасно работает :-(
Работает, потому что в LocalSQL есть такой тип поля.
alex_1234 (2005-10-10 14:52:00) [12]Забыл написать:
ориентировочно ошибка в q2.SQL.Add('MESPRESISI NUMERIC(16,6)');
т.к. без этого поля все прекрасно создается.
А БДЕ - (СКуэЛь експлорер) - все прекрасно работает :-(