-
Вопрос в большей степени АП.
Хочу из дельфей создать File.DB
(от DBF-а решил уйти из-за integer'a...)
Мне нужно создать integer и numeric (цифры от 1-100 + 2 после зпт)
T := TTable.Create(nil);
T.TableType := ttParadox;
with T.FieldDefs do begin
Add('ID',ftInteger,0,false);
end;
а вот как задать с запятой?
и возможно-ли проделать запросом CREATE TABLE "pdox.db" ....
Спасибо!
-
выяснил:
если при создании я задаю тип ftFloat - то в файле появляется тип N (numeric)
-
еще выяснил:
если сказать CREATE TABLE "pdox.db" (..fileds..) - то создается файлик именно Paradox 7.
Это дельфа сама по расширению узнала что создавать?
-
ну вроде бы сам себе ответил:
Q - TQuery (create)
SQL = 'CREATE TABLE ''pdox.db'' (ID INTEGER, NUM NUMERIC, SS CHAR(254), MYMEMO BLOB(100,1))
Q.Exec...
---- для справки --------
SQL BDE Paradox dBASE
---------------------------------------------------------------------
SMALLINT fldINT16 Short Number (6,10)
INTEGER fldINT32 Long Integer Number (20,4)
DECIMAL(x,y) fldBCD BCD N/A
NUMERIC(x,y) fldFLOAT Number Number (x,y)
FLOAT(x,y) fldFLOAT Number Float (x,y)
CHARACTER(n) fldZSTRING Alpha Character
VARCHAR(n) fldZSTRING Alpha Character
DATE fldDATE Date Date
BOOLEAN fldBOOL Logical Logical
BLOB(n,1) fldstMEMO Memo Memo
BLOB(n,2) fldstBINARY Binary Binary
BLOB(n,3) fldstFMTMEMO Formatted memo N/A
BLOB(n,4) fldstOLEOBJ OLE OLE
BLOB(n,5) fldstGRAPHIC Graphic N/A
TIME fldTIME Time N/A
TIMESTAMP fldTIMESTAMP Timestamp N/A
MONEY fldFLOAT, fldstMONEY Money Number (20,4)
AUTOINC fldINT32, fldstAUTOINC Autoincrement N/A
BYTES(n) fldBYTES(n) Bytes N/A
-
> Это дельфа сама по расширению узнала что создавать?
это вроде можно настраивать в BDE администраторе (вполне можно получить и Paradox 4 например), не помню только как... такое старье....
-
Никаких запятых нет, там хранятся числа.
Несмотря на множество вариантов, все реальные числовые типы сводятся только к двум Float и Currency - остальные оптический обман.
Ну ты хуже базы найти не смог что ли?
-
Ведь на каждой дороге стоит указатель "Сюда не ходи","не пей воды козленочком станешь" или это только для ботаников.
-
Анатолий, спасибо за реплику!
Основная база - FireBird.
А таблицу Paradox7 я собираюсь использовать для передачи данных (эскпорт-импорта). У меня есть MEMO поля которые надо передать.
XML учить думаю что долго. И сможет ли XML передать MEMO?
-
> azamatufa (29.07.2010 12:07:07) [7]
Для передачи данных положено использовать dBase III / IV а не Парадокс
-
> [7] azamatufa © (29.07.10 12:07)
В ФБ есть внешние таблицы - просто файлик рядом с базой лежит. В одной БД его можно создать, а в другой присоединить.
-
> В ФБ есть внешние таблицы - просто файлик рядом с базой лежит. В одной БД его можно создать, а в другой присоединить.
если задача передавать данные между ФБ - дами, то это идеальный вариант. т.к. родной формат. и главное никаких xml... ;)
-
почему-то пишут что External таблицах нельзя хранить BLOB. а мне надо!!
Анатолий! напишите запрос CREATE TABLE для dbf, пож-ста..
Спасибо
-
Не отличается от Парадокса
-
в общем вот что получилось:
CREATE TABLE "my_super.dbf"
(SS CHAR(50), MEMO BLOB, ID DECIMAL(20,0), NUM DECIMAL)
20,0 - знаков после зпт - нет
если без параметров - будет 4 знака после зпт.
YES!
Анатолий! А на других компьютерах этот создающий SQL правильно сработает?
(TQUERY)
-
DECIMAL размер scale вроде бы игнорируется.
Что значит правильно? Сработать то сработает, а вот правильно - это непонятно. Оно же работает в соответствии с настройками БДЕ
Если тебе нужна очень четкая структура, то откажись от создания с помощью запроса или CreateTable. Создай точную структуру в Database Desktop и используй ее как шаблон.
FAQ
http://www.podgoretsky.com/ftp/Docs/Delphi/FAQ/ru.delphi.db.html#N39
-
читал 39....
понял! чтоб надежно - юзать шаблон-файло!
Спасибо!
-
Анатолий!
Вот скажите пож-ста. В Dayabase Desktop какой тип выбрать DBF
- DBase for Windows
- DBase IV
?
-
> DECIMAL размер scale вроде бы игнорируется.
насколько, смутно, помню зависит от версии dbf... т.е. типа dBase III - 20 и 4 знака после запятой, а DBase IV/V 20 и 5 знаков после.
-
> azamatufa (29.07.2010 15:58:16) [16]
DBase for Windows поддерживает язык таблицы, четверка нет. Лучше первое
-
> azamatufa (29.07.2010 15:50:15) [15]
Методом экспериментов я именно к этому и пришел, Конечно можно и без этого,
но тогда надо отказываться от BDE.VCL и делать все через библиотеку BDE а
там черт ногу сломит, очень сложная она и плохо документирована, правда
примеры отличные. Еще есть методы работать напрямую с файлом, но это если
без Мемо, можно также использовать какую либо другую библиотеку только для
создания файла.
Все это не стоит усилий.
-
> Anatoly Podgoretsky © (29.07.10 18:14) [19]
Ну вот ((
Я щас парился делал в DataBase Desktop'e IV DBase ((
а ведь и работает! и с я языком все в норме!