Текущий архив: 2003.04.14;
Скачать: CL | DM;
ВнизКак создать запросом таблицу DBF Найти похожие ветки
← →
Sergey_ (2003-03-26 09:35) [0]Уважаемые ALL, помогите создать командой SQL таблицу дбф с полями типов numeric , float
пишу AdoCommand.CommandText := " CREATE TABLE "+tabname+" ( DATETI CHAR(19), C_ANNO NUMERIC(12,2) )";
получаю : "Ошибка синтаксиса в инструкции CREATE TABLE "
если пишу " CREATE TABLE "+tabname+" ( DATETI CHAR(19), C_ANNO CHAR(12) )" всё хорошо
← →
shoo (2003-03-26 09:44) [1]Обязательно запросом нужно?
А испытанным способом не устраивает?
var mydbf: TTable;
...
with mydbf do
begin
Close;
DatabaseName := "C:\MyPath";
TableName := tabname;
TableType := ttFoxPro; // или другой какой-нибудь
with FieldDefs do
begin
Clear;
Add("dateti", fString, 19, False);
Add("c_anno", ftFloat, 0, False);
end;
CreateTable;
Free;
end;
← →
Sergey_ (2003-03-26 09:57) [2]Спасибо, просто я привык на MS SQL всё запросами делать
а тут дбф , но почему команда не работает ?
← →
Соловьев (2003-03-26 10:00) [3]Через что выполняешь запрос?
← →
Соловьев (2003-03-26 10:09) [4]Недасмотрел что ADO:
AdoCommand.CommandText := " CREATE TABLE "+tabname+" ( DATETI CHAR(19), C_ANNO NUMERIC [12,2] )";
← →
Sergey_ (2003-03-26 10:19) [5]Не и так [] не хочет а где ты квадратные скобки в документации увидел ?
← →
Соловьев (2003-03-26 10:22) [6]LocalSQL:
NUMERIC[(s[, p])] Floating point numbers. Scale and precision are each optional. If precision is specified, scale must also be.
FLOAT(s, p) Floating point numbers. Scale and precision are each optional. If precision is specified, scale must also be.
← →
Соловьев (2003-03-26 10:25) [7][] - это необязательный параметр... прогнал я ....
Наверное надо:
AdoCommand.CommandText := " CREATE TABLE "+tabname+" ( DATETI CHAR(19), C_ANNO Float(12,2) )";
← →
Sergey_ (2003-03-26 10:36) [8]та же фигня может другой драйвер использовать ? я использую
MS dBase driver
← →
sniknik (2003-03-26 11:56) [9]скорее всего пройдет
AdoCommand.CommandText := " CREATE TABLE "+tabname+" ( DATETI CHAR(19), C_ANNO Float)";
с другими все то же самое будет.
← →
sniknik (2003-03-26 11:58) [10]Кроме может быть драйвера фокса. но у него свои заморочки, покруче.
← →
Sergey_ (2003-03-26 15:51) [11]2(sniknik) просто float получилось а если я хочу ещё целые значения хранить numeric(5,0) не проходит
← →
sniknik (2003-03-26 17:23) [12]хотеть не вредно, но прогресс не остановиш :о))
у jet-а -
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Extended Properties=dBase IV;Persist Security Info=False
на этот случай оставлено, DECIMAL
то есть сработает так
CREATE TABLE tabname ( DATETI CHAR(19), C_ANNO DECIMAL(5,0))
но в большинстве случаев все одно сделает поле размерностью 20,5 (для dBase III) 19,5 (насколько помню)
а все остальные не поддерживает (иногда проходят 16,2 и чегото) еще, но это несушественно. считай что нет.
(проще всего найди модуль, makedbf.pas простенький только для создания dbf-ок и без мемо (можно другой), и будеш иметь такую возможность, с готовыми dbf-ами работать будет любой драйвер)
Страницы: 1 вся ветка
Текущий архив: 2003.04.14;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.008 c