Конференция "Начинающим" » Прошу прощения, создать RUN-time Paradox7
 
  • azamatufa © (29.07.10 10:36) [0]
    Вопрос в большей степени АП.

    Хочу из дельфей создать 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" ....

    Спасибо!
  • azamatufa © (29.07.10 10:57) [1]
    выяснил:
    если при создании я задаю тип ftFloat - то в файле появляется тип N (numeric)
  • azamatufa © (29.07.10 11:04) [2]
    еще выяснил:

    если сказать CREATE TABLE "pdox.db" (..fileds..)  - то создается файлик именно Paradox 7.

    Это дельфа сама по расширению узнала что создавать?
  • azamatufa © (29.07.10 11:21) [3]
    ну вроде бы сам себе ответил:

    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
  • sniknik © (29.07.10 11:40) [4]
    > Это дельфа сама по расширению узнала что создавать?
    это вроде можно настраивать в BDE администраторе (вполне можно получить и Paradox 4 например), не помню только как... такое старье....
  • Anatoly Podgoretsky © (29.07.10 12:04) [5]
    Никаких запятых нет, там хранятся числа.
    Несмотря на множество вариантов, все реальные числовые типы сводятся только к двум Float и Currency - остальные оптический обман.

    Ну ты хуже базы найти не смог что ли?
  • Anatoly Podgoretsky © (29.07.10 12:06) [6]
    Ведь на каждой дороге стоит указатель "Сюда не ходи","не пей воды козленочком станешь" или это только для ботаников.
  • azamatufa © (29.07.10 12:07) [7]
    Анатолий, спасибо за реплику!

    Основная база - FireBird.

    А таблицу Paradox7 я собираюсь использовать для передачи данных (эскпорт-импорта). У меня есть MEMO поля которые надо передать.
    XML учить думаю что долго. И сможет ли XML передать MEMO?
  • Anatoly Podgoretsky © (29.07.10 12:09) [8]
    > azamatufa  (29.07.2010 12:07:07)  [7]

    Для передачи данных положено использовать dBase III / IV а не Парадокс
  • Sergey13 © (29.07.10 12:11) [9]
    > [7] azamatufa ©   (29.07.10 12:07)

    В ФБ есть внешние таблицы - просто файлик рядом с базой лежит. В одной БД его можно создать, а в другой присоединить.
  • sniknik © (29.07.10 12:35) [10]
    > В ФБ есть внешние таблицы - просто файлик рядом с базой лежит. В одной БД его можно создать, а в другой присоединить.
    если задача передавать данные между ФБ - дами, то это идеальный вариант. т.к. родной формат. и главное никаких xml... ;)
  • azamatufa © (29.07.10 13:32) [11]
    почему-то пишут что External таблицах нельзя хранить BLOB. а мне надо!!

    Анатолий! напишите запрос CREATE TABLE для dbf, пож-ста..
    Спасибо
  • Anatoly Podgoretsky © (29.07.10 13:42) [12]
    Не отличается от Парадокса
  • azamatufa © (29.07.10 14:00) [13]
    в общем вот что получилось:
    CREATE TABLE "my_super.dbf"
    (SS CHAR(50), MEMO BLOB, ID DECIMAL(20,0), NUM DECIMAL)

    20,0  - знаков после зпт - нет
    если без параметров - будет 4 знака после зпт.

    YES!

    Анатолий! А на других компьютерах этот создающий SQL правильно сработает?
    (TQUERY)
  • Anatoly Podgoretsky © (29.07.10 14:13) [14]
    DECIMAL размер scale вроде бы игнорируется.
    Что значит правильно? Сработать то сработает, а вот правильно - это непонятно. Оно же работает в соответствии с настройками БДЕ

    Если тебе нужна очень четкая структура, то откажись от создания с помощью запроса или CreateTable. Создай точную структуру в Database Desktop и используй ее как шаблон.

    FAQ http://www.podgoretsky.com/ftp/Docs/Delphi/FAQ/ru.delphi.db.html#N39
  • azamatufa © (29.07.10 15:50) [15]
    читал 39....

    понял! чтоб надежно - юзать шаблон-файло!
    Спасибо!
  • azamatufa © (29.07.10 15:58) [16]
    Анатолий!

    Вот скажите пож-ста. В Dayabase Desktop какой тип выбрать DBF
    - DBase  for Windows
    - DBase IV

    ?
  • sniknik © (29.07.10 16:51) [17]
    > DECIMAL размер scale вроде бы игнорируется.
    насколько, смутно, помню зависит от версии dbf... т.е. типа dBase III - 20 и 4 знака после запятой, а DBase IV/V 20 и 5 знаков после.
  • Anatoly Podgoretsky © (29.07.10 18:09) [18]
    > azamatufa  (29.07.2010 15:58:16)  [16]

    DBase  for Windows поддерживает язык таблицы, четверка нет. Лучше первое
  • Anatoly Podgoretsky © (29.07.10 18:14) [19]
    > azamatufa  (29.07.2010 15:50:15)  [15]

    Методом экспериментов я именно к этому и пришел, Конечно можно и без этого,
    но тогда надо отказываться от BDE.VCL и делать все через библиотеку BDE а
    там черт ногу сломит, очень сложная она и плохо документирована, правда
    примеры отличные. Еще есть методы работать напрямую с файлом, но это если
    без Мемо, можно также использовать какую либо другую библиотеку только для
    создания файла.
    Все это не стоит усилий.
  • azamatufa © (29.07.10 18:52) [20]

    > Anatoly Podgoretsky ©   (29.07.10 18:14) [19]


    Ну вот ((
    Я щас парился делал в DataBase Desktop'e IV  DBase ((

    а ведь и работает! и с я языком все в норме!
 
Конференция "Начинающим" » Прошу прощения, создать RUN-time Paradox7
Есть новые Нет новых   [134434   +28][b:0][p:0.001]