Создание таблицы SQL+Delphi
При создании данного запроса такого же синтаксиса через добавление на форму TQuery (не динамического) всё работает нормально...а здесь хрень какая -то...подозреваю, что проблема либо в кавычках, либо в каком-нить заумном написании запроса.
Подскажите пожалуйста?
var
DinQry: PTQuery;
begin
New(DinQry);
DinQry^:=TQuery.Create(Self);
DinQry^.SQL.Clear;
DinQry^.SQL.Add('CREATE TABLE "dbname.db" '+
'fld1 INTEGER'+
'fld2 VARCHAR(20),'+
'fld3 VARCHAR(20),'+
'fld4 VARCHAR(20),'+
'fld5 VARCHAR(20),'+
'fld6 VARCHAR(25),'+
'fld7 INTEGER DEFAULT "0",'+
'fld8 VARCHAR(2) DEFAULT "-",'+
'fld9 INTEGER DEFAULT "0",'+
'fld10 VARCHAR(20),'+
'fld11 VARCHAR(20),'+
'fld12 BOOLEAN DEFAULT "TRUE",'+
'PRIMARY KEY(fld1))');
DinQry^.Prepare;
DinQry^.ExecSQL;
if DinQry^.Active then DinQry^.Close;
DinQry^.UnPrepare;
Dispose(DinQry);
end;
выдается ошибка:
Invalid use of keyword.
Token: fld
Line Number: 1.
Ну чего ? нет вариантов? :((((
я больше по ORACLE,но есть вопрос: ты уверен что нужны кавычки для названия таблицы??
Код:
DinQry^.SQL.Add('CREATE TABLE '#34'dbname.db'#34+
Цитата: Toxa-86
я больше по ORACLE,но есть вопрос: ты уверен что нужны кавычки для названия таблицы??
Не уверена, по идее должно работать и так и так....вроде в данном случае нет жесткой привязки к синтаксису
Цитата: Hydra
Не пробовал что-нть типа
Код:
DinQry^.SQL.Add('CREATE TABLE '#34'dbname.db'#34+
Вы будете надо мной смеяться ... я скобку не поставила! :)
Блин целый день с запросом билась, вот я тормоз ))))
DinQry^.SQL.Add('CREATE TABLE "BName.db" ( ' +
'fld1 INTEGER,'+
'fld2 VARCHAR(20),'+
'fld3 INTEGER DEFAULT "0",'+
'fld4 VARCHAR(2) DEFAULT "-",'+
'fld5 INTEGER DEFAULT "0",'+
'fld6 BOOLEAN DEFAULT "TRUE",'+
'PRIMARY KEY(fld1)) ');
end
таблица создается, но дефолтные значения не прописываются.
Опять наверное что-то забываю ?
Как при создании таблицы БД указать значения, используемые по умолчанию ?
просто в инсерт запросе не надо их значения явно указывать и
все.