Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];

Вниз

Как програмно создать поле Float?   Найти похожие ветки 

 
stone   (2003-06-24 13:41) [0]

Создаю таблицу при помощи FieldDefs
with AddFieldDef do
begin
Name := "Course";
DataType := ftFloat;
end;

Поле создается, но если открыть структуру таблицы в Database Desktop, оно не имеет ни длины, ни точности.
Что еще надо указать?

ЗЫ. База DBASE


 
Соловьев   (2003-06-24 13:49) [1]

with FieldDefs do
begin
Add("PHONE", ftFloat, 0, true);
FieldDefs[0].CreateField(MySql);
...


 
Stas   (2003-06-24 13:50) [2]

Table1.fielddefs.add ("MyField",ftFloat,4,false)


 
stone   (2003-06-24 13:52) [3]

Соловьев © (24.06.03 13:49)

Разве не одно и тоже ?


 
stone   (2003-06-24 14:24) [4]

Чувствую, стандартным способом такое не получится. То же касается поля Integer (с длиной более 6). Видимо нужно лезть поглубже в БДЕ.


 
HSolo   (2003-06-24 14:35) [5]

Есть еще один стандартный способ :) SQL-запрос
Query.SQL.Text := "ALTER TABLE такая-то ADD поле NUMERIC(длина,точность)";
Query.ExecSQL;


 
Anatoly Podgoretsky   (2003-06-24 14:52) [6]

stone © (24.06.03 13:41)

ЗЫ. База DBASE - за собой ничего не несет.



 
stone   (2003-06-24 14:56) [7]


> Anatoly Podgoretsky © (24.06.03 14:52)


Как прикажете понимать?


 
Anatoly Podgoretsky   (2003-06-24 15:03) [8]

Это тебя как понимать, DBASE форматов много, для седьмого это нормально. Ты вместо задания вопросов будь добр указывать полную информацию, необходимую для ответа. Сказать DBASE это все равно что ничего не сказать, одно ясно, что это не Парадок, не Акцесс не ИБ и т.д., но это все.


 
stone   (2003-06-24 15:15) [9]

DBASE IV


 
Anatoly Podgoretsky   (2003-06-24 15:22) [10]

Это ты точно знаешь или предполагаешь, но что то не видать, что ты устанавливаешь размер при добавлении, а надо бы


 
stone   (2003-06-24 15:30) [11]

Скорее предполагаю
Вот полный код:

DB := TDatabase.Create(nil);
DB.DriverName := "STANDARD";
DB.Params.Values["PATH"] := Dir;
DB.LoginPrompt := False;
DB.DatabaseName := "DB";
DB.Connected := true;
Tbl := TTable.Create(nil);
Tbl.TableType:= ttDBase;
Tbl.DatabaseName := "DB";

try
UpdateMessages("


 
Anatoly Podgoretsky   (2003-06-24 15:46) [12]

1. Ты опять не указываешь размер, а ожидаешь его увидеть

procedure Add(const Name: String; DataType: TFieldType; Size: Integer = 0; Required: Boolean = False);

2. Add is provided for backward compatibility.
3. Я бы вообще не рекомендовал использовать тип ftFloat, он во первых не зря Float, что означает плавающая запятая и предназначен в основном для представления или очень маленьких или очень больших чисел, которые не помещаются в 18 знаков. Для dBase ниже 7 версии, оптимальный типы ftInteger/ ftBCD, но лучше уходить на BDE API, поскольку VCL не имеет должной поддержки, или самый простой путь иметь пустую таблицу шаблон и ее копировать (dbiCopyTable), в этом случае гарантируется точная структура. Можно еще и на рабочей если сменить имя, без изменения FieldDefs, но тут могут быть сюрпризы, в зависимости от настроек BDE


 
stone   (2003-06-24 15:56) [13]

ftBCD устанавливает (20,4) не зависимо указан размер или нет

> но лучше уходить на BDE API


Где об этом можно почитать?


 
Anatoly Podgoretsky   (2003-06-24 16:07) [14]

В справке по BDE



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.01 c
14-55714
Мазут Береговой
2003-07-01 19:03
2003.07.17
Притча от Мазута. Быль. 20 век.


3-55465
Alex_x
2003-06-25 11:25
2003.07.17
Немогу установить фильтр на датасет


6-55682
keymaster
2003-05-11 11:47
2003.07.17
Как 100% узнать есть ли в данный момент соединение с инетом?


3-55399
Пубертанец
2003-06-23 13:57
2003.07.17
Проблема создания loookup-овского поля программным путем


14-55772
Катерина
2003-06-30 09:51
2003.07.17
Оптический синткз





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский