Форум: "Базы";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];
ВнизTIBExtract Найти похожие ветки
← →
RUYurik (2003-12-18 10:33) [0]Уважаемые мастера! Подмогите с компонентом TIBExtract. Динамически создаю IBDataBase, IBTransaction, IBExtract, коннектюсь и потом пробую вытащить данные
Ex2.ExtractObject(eoTable,"PEOPLE",[etData]);
на что мне "Access violation at adress...". Что не так? Недавно делал - все нормально было, а сейчас ругается???
← →
RUYurik (2003-12-18 10:44) [1]Народ!!! Что никто не знает в чем может быть проблема?
← →
Кщд (2003-12-18 10:50) [2]так код?
← →
RUYurik (2003-12-18 10:55) [3]
> Кщд (18.12.03 10:50) [2]
> так код?
не понял, что код?
← →
Кщд (2003-12-18 10:57) [4]не что, а где :)
где код?
← →
RUYurik (2003-12-18 11:03) [5]Вот код:
...
mDB1.Connected := False;
mDB1.DatabaseName := "D:\Base_gdb\a12.gdb";
mDB1.LoginPrompt := False;
mDB1.Params.Add("user_name=SYSDBA");
mDB1.Params.Add("password=masterkey");
mDB1.Params.Add("lc_ctype=WIN1251");
Ex2.Database := mDB1;
Ex2.Transaction := mTR;
try
mDB1.Connected := True;
mTR1.StartTransaction;
except
end;
Ex2.ExtractObject(eoTable,"PEOPLE",[etData]);
...
на последней строке этого кода выскакивает ошибка
← →
Johnmen (2003-12-18 11:04) [6]Проблема в том, что надо бы указать у экстракта базу данных и транзакцию. При этом БД д.б. открыта...
← →
RUYurik (2003-12-18 11:09) [7]
> Johnmen ©
> Ex2.Database := mDB1;
> Ex2.Transaction := mTR;
И почему она должна быть открытой? вроде наоборот
← →
Johnmen (2003-12-18 11:15) [8]>RUYurik ©
>И почему она должна быть открытой?
А как же ты хочешь получить что-то без коннекта ???!!!
:)
← →
RUYurik (2003-12-18 11:20) [9]Так я и делаю
Ex2.ExtractObject(eoTable,"PEOPLE",[etData]);
после коннекта. И еще забыл сказать может быть существенную деталь - все это в потоке
← →
Johnmen (2003-12-18 11:23) [10]>RUYurik © (18.12.03 11:20)
И коннект в том же потоке ? А надо бы в том же...
← →
RUYurik (2003-12-18 11:25) [11]Да, все в потоке, от динамического создания компонентов, коннекта до самого экстракта данных
← →
RUYurik (2003-12-18 11:25) [12]Да, все в одном потоке, от динамического создания компонентов, коннекта до самого экстракта данных
← →
Johnmen (2003-12-18 11:34) [13]Все-таки, видимо, не определено свойство Database, или определено неправильно... Или транзакция не определена...
Приведи код, только немного, самое существенное...
← →
RUYurik (2003-12-18 11:38) [14]Вот весь код сначала и до конца:
mDB1 := TIBDatabase.Create(mDB1);
mTR1:=TIBTransaction.Create(mDB1);
mTR1.DefaultDatabase := mDB1;
mTR1.DefaultAction := TACommit;
mTR1.Params.Add("read_committed");
mTR1.Params.Add("rec_version");
mTR1.Params.Add("nowait");
Ex2 := TIBExtract.Create(mDB1);
mDB1.Connected := False;
mDB1.DatabaseName := "D:\Base_gdb\iglu\iglu.gdb";
mDB1.LoginPrompt := False;
mDB1.Params.Add("user_name=SYSDBA");
mDB1.Params.Add("password=a");
mDB1.Params.Add("lc_ctype=WIN1251");
Ex2.Database := mDB1;
Ex2.Transaction := mTR;
try
mDB1.Connected := True;
mTR1.StartTransaction;
except
end; //try
Ex2.ExtractObject(eoTable,"PEOPLE",[etData]);
for i:=0 to Ex2.Items.Count-1 do
begin
eMess := Ex2.Items[i];
Synchronize(UpdateResMemo);
end;
← →
Johnmen (2003-12-18 11:48) [15]Вот, кое-что подправил...
mDB1:= TIBDatabase.Create(nill);
mTR1:=TIBTransaction.Create(nill);
mDB1.DefaultTransaction:=mTR1;
mTR1.DefaultDatabase := mDB1;
mTR1.DefaultAction := TACommit;
mTR1.Params.Add("read_committed");
mTR1.Params.Add("rec_version");
mTR1.Params.Add("nowait");
Ex2 := TIBExtract.Create(nill);
mDB1.Connected := False;
mDB1.DatabaseName := "D:\Base_gdb\iglu\iglu.gdb";
mDB1.LoginPrompt := False;
mDB1.Params.Add("user_name=SYSDBA");
mDB1.Params.Add("password=a");
mDB1.Params.Add("lc_ctype=WIN1251");
Ex2.Database := mDB1;
Ex2.Transaction := mTR;
try
mDB1.Connected := True;
mTR1.StartTransaction;
except
end; //try
← →
RUYurik (2003-12-18 12:00) [16]Попробовал в параметры "NIL" ставить - так же :(
← →
Johnmen (2003-12-18 12:02) [17]Там еще добавлена строка
mDB1.DefaultTransaction:=mTR1;
:)
← →
RUYurik (2003-12-18 12:08) [18]То же самое.
Вот в чем загвоздка то - база коннектится, а при экстракте - ошибка. Ругается при ExtractObject
← →
Johnmen (2003-12-18 12:12) [19]Только что повторил. Всё работает...:)
← →
RUYurik (2003-12-18 12:23) [20]Я прям тоже не пойму в чем проблема может быть, буквально вчера делал то-же самое - только результат переносил в MEMO, а сегодня результат решил подстаавить в IBSQL - и вот результат :(
← →
RUYurik (2003-12-18 12:35) [21]ВСЕ!!!! НАШЕЛ!!!!
> Ex2.Transaction := mTR;
а нужно
Ex2.Transaction := mTR1;
Просто у меня разные транзакции...Спасибо за время уделенное на меня :)))
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c