Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.022 c
3-43991
Immortal_
2003-03-23 20:15
2003.04.14
alter trigger howto?


1-44241
BALU1111
2003-04-01 10:43
2003.04.14
Курсор в TextEdit


6-44308
Dr.Karter
2003-02-19 10:58
2003.04.14
По узнаванию IPAddress ов


1-44131
salvo
2003-04-02 16:02
2003.04.14
создание файла


14-44389
romychk
2003-03-25 11:24
2003.04.14
SQL сервер PostgreSQL