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

Вниз

Добавляю динамически поле в DataSet а при его открытии   Найти похожие ветки 

 
Вован   (2003-07-07 12:35) [0]

исключение с сообщением про неправельный тип поля:


F:=TIntegerField.Create(Table);
F.FieldKind:=fkData;
F.FieldName:="ROW";
F.DataSet:=Table;
F.Name:="ROW";

Table.FieldDefs.Add(Name,ftInteger,0,false);

Table.Open;


Что я не так делаю?


 
Anatoly Podgoretsky   (2003-07-07 12:43) [1]

А вообще что ты делаешь, щачем первые 5 строк или зачем следующая строка, что такое Name? В какой строчке ругается.


 
Sandman25   (2003-07-07 12:47) [2]

Table.FieldDefs.Add(Name,ftInteger,0,false);
->
Table.FieldDefs.Add(Name,ftString,0,false);


 
Вован   (2003-07-07 13:16) [3]

2Sandman25 ??? почему ???


 
koks   (2003-07-07 13:24) [4]

Да-да, неблагодарное это дело динамически создавать статические поля. Для начала - на момент вызова Table.FieldDefs.Add(Name,ftInteger,0,false) у тебя уже есть хоть одно статическое поле для Table ?


 
Вован   (2003-07-07 14:14) [5]

Ну так-как Active=false то нету


 
Соловьев   (2003-07-07 14:15) [6]

MySql := TQuery.Create(FirstForm);
with MySql do
begin
DataBaseName := "cadr";
AutoCalcFields := true;
OnCalcFields := MyCalcFields;
with FieldDefs do
begin
Add("phone", ftFloat, 0, true);
FieldDefs[0].CreateField(MySql);

Add("FIO", ftString, 100, true);
FieldDefs[1].CreateField(MySql);

Add("N_D", ftString, 100, true);
FieldDefs[2].CreateField(MySql);

Add("L_of_S", ftString, 100, true);
FieldDefs[3].CreateField(MySql);

Add("NOTE", ftString, 100, true);
FieldDefs[4].CreateField(MySql);

Add("TYPE", ftString, 100, true);
FieldDefs[5].CreateField(MySql);

Add("DATA", ftDate, 0, true);
FieldDefs[6].CreateField(MySql);

Add("ID", ftString, 15, true);
FieldDefs[7].CreateField(MySql);

Add("VYDAN", ftString, 250, true);
FieldDefs[8].CreateField(MySql);

Add("PLASE_WORK", ftString, 250, true);
FieldDefs[9].CreateField(MySql);


Numer := TIntegerField.Create(MySql);
with Numer do
begin
FieldName := "Numer";
Calculated := True;
DataSet := MySql;
Name := MySql.Name + FieldName;
MySql.FieldDefs.Add(Name, ftInteger, 0, true);
end;
end;
end;


 
Sandman25   (2003-07-07 15:10) [7]

Вован (07.07.03 13:16)

Потому что судя по имени поля (Name), это поле строкового типа.


 
koks   (2003-07-07 16:47) [8]

Насколько я вижу - ты создаешь компанент, а потом физические поля таблицы. При этом ОБЪЕКТЫ ПОЛЕЙ (что не одно и тоже) у тебя будут динамическими. (т.е. они у тебя будут создаваться автоматически при открытии Query.)

так у тубя до строчки Numer := TIntegerField.Create(MySql);

А потом ты динамически создаешь ОБЪЕКТ ПОЛЯ. (он был бы статическим если бы ты его создавал в дизайн-тайме). Затем ты его прикрепляешь к Query. получается, что Query при открытии у тебя будет одновременно иметь статические (Number) и динамические ОБЪЕКТЫ ПОЛЕЙ, что не допускается теорией. Потомки TDataSeta могут работать либо со статическими либо с динамическими ОБЪЕКТАМИ ПОЛЕЙ!

Читай в учебнике про ПОЛЯ и ОБЪЕКТЫ ПОЛЕЙ....



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

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

Наверх





Память: 0.46 MB
Время: 0.009 c
6-100849
Beregin
2003-05-25 16:13
2003.07.31
Переслать файл без TfileStream


14-100945
` frizZ. `
2003-07-13 19:07
2003.07.31
Microsoft Win32 Software Development Kit


1-100777
Checist [root]
2003-07-16 16:52
2003.07.31
Рисование в ячейке DrawGrid а


14-100950
neuro
2003-07-14 20:48
2003.07.31
формат evt


3-100625
paxer
2003-07-08 10:39
2003.07.31
FireBird Embedded





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский