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

Вниз

TIBTable.CreateTable   Найти похожие ветки 

 
Grihan   (2003-12-31 12:07) [0]

После вызова TIBTable.CreateTable для существующей базы, в которой уже существует таблица с именем, указанным TIBTable.TableName возникает ошибка: такая таблица уже существует, хотя в хелпе сказано:CreateTable overwrites an existing table’s structure and data.
Не подскажете в чем дело?
Спасибо.


 
Vick   (2003-12-31 12:12) [1]

А как на счет заразервированнsх классов???
Вас в школе не учили, что их нельзя использовать как имена переменных? А имена переменных должны быть уникальными? в пределах хотя бы процедуры (функции)???


 
Grihan   (2003-12-31 12:16) [2]

Да нет, имя то у меня ibtTable. Т.е.вызов такой: ibtTable.CreateTable;
Это я для наглядности написал, чтоб понятно какой класс использую...


 
Vick   (2003-12-31 12:18) [3]


> Grihan


Так ты их в рантайме создаешь? Или одна на форме валяется, а другую создаешь? Код напиши.


 
Johnmen   (2003-12-31 12:21) [4]

>Grihan

Потому, что, хоть и написано, что overwrites, на самом деле идет чистое создание таблицы.
И второе. Почему бы не выполнить просто запрос CREATE TABLE ... ? И проще и быстрей и понятней...


 
Grihan   (2003-12-31 12:25) [5]

На форме есть ibtTable: TIBTable;
там же на форме я ее связал с
ibdbBase: TIBDatabase; и
ibtTrans: TIBTransaction;
все посвязывал друг с другом.
Но ни базы, ни таблицы в реалии нет, поэтому создаю все в рантайме. Вот код:

ibdbBase.DatabaseName := FileName;//FileName приходит из вне

if not ibdbBase.Connected then
begin
Params := TStringList.Create;
if not FileExists(feFileIB.FileName) then
begin
Params.Add("USER "SYSDBA"");
Params.Add("PASSWORD "masterkey"");
Params.Add("PAGE_SIZE 4096");
ibdbBase.Params := Params;
ibdbBase.CreateDatabase;
end
else
begin
Params.Add("user_name=SYSDBA");
Params.Add("password=masterkey");
ibdbBase.Params := Params;
ibdbBase.Connected := True;
end;
Params.Free;
end;

try
ibtTable.Active := False;
ibtTable.TableName := "Main";
ibtTable.FieldDefs.Clear;
ibtTable.FieldDefs.Add("ISN", ftInteger, 0, True);
ibtTable.FieldDefs.Add("PARISN", ftInteger, 0, True);
ibtTable.FieldDefs.Add("ADDRESSLEVEL", ftSmallint, 0, True);
ibtTable.FieldDefs.Add("CLASSISN", ftInteger, 0, True);
ibtTable.FieldDefs.Add("ADDRESS", ftString, 40, False);
ibtTable.FieldDefs.Add("CODE", ftString, 15, False);
ibtTable.FieldDefs.Add("TARIFFZONE", ftString, 10, False);

ibtTable.IndexDefs.Clear;
ibtTable.IndexDefs.Add("Key", "ISN", [ixPrimary, ixUnique]);

ibtTrans.Active := True;
if ibtTable.Exists then
ibtTable.DeleteTable; //написал чтоб обсуждаемая ошибка не возникала
ibtTable.CreateTable;
except
end;


 
Vick   (2003-12-31 12:26) [6]

В хелпе пишут, что еще бы проверочку немешало бы поставить

if not IBTable1.Exists then begin.....end


 
Grihan   (2003-12-31 12:31) [7]

в хелпе так: to avoid overwriting an existing table, check Exists before calling CreateTable.
т.е. для предотвращения перезаписи существующей таблици следует проверить ее существование


 
Johnmen   (2003-12-31 12:33) [8]

>Grihan

На заборе тоже много чего пишут...:)
Ты смотри в корень. А корень - исходники !



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

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

Наверх





Память: 0.46 MB
Время: 0.007 c
1-93461
Igor Bykov
2004-01-15 12:41
2004.01.29
textfile


1-93494
last
2004-01-19 08:41
2004.01.29
QReport


1-93435
IronHawk
2004-01-16 15:13
2004.01.29
Приветствую Мастеров! Как сделать проверку, что в строке ДАТА?


3-93349
Jane
2004-01-02 18:23
2004.01.29
В DBGrid не отображается знаечние поля.


1-93464
Александр
2004-01-15 18:28
2004.01.29
Как через Delphi сжимать файлы?





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