![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TIBExtract [D6, IB5.x]
RUYurik © (2003-12-18 10:33:00)
Уважаемые мастера! Подмогите с компонентом TIBExtract. Динамически создаю IBDataBase, IBTransaction, IBExtract, коннектюсь и потом пробую вытащить данные
Ex2.ExtractObject(eoTable,"PEOPLE",[etData]);
на что мне "Access violation at adress...". Что не так? Недавно делал - все нормально было, а сейчас ругается???
RUYurik (2003-12-18 12:35:00) [1]
ВСЕ!!!! НАШЕЛ!!!!
> Ex2.Transaction := mTR;
а нужно
Ex2.Transaction := mTR1;
Просто у меня разные транзакции...Спасибо за время уделенное на меня :)))
RUYurik (2003-12-18 12:23:00) [2]
Я прям тоже не пойму в чем проблема может быть, буквально вчера делал то-же самое - только результат переносил в MEMO, а сегодня результат решил подстаавить в IBSQL - и вот результат :(
Johnmen (2003-12-18 12:12:00) [3]
Только что повторил. Всё работает...:)
RUYurik (2003-12-18 12:08:00) [4]
То же самое.
Вот в чем загвоздка то - база коннектится, а при экстракте - ошибка. Ругается при ExtractObject
Johnmen (2003-12-18 12:02:00) [5]
Там еще добавлена строка
mDB1.DefaultTransaction:=mTR1;
:)
RUYurik (2003-12-18 12:00:00) [6]
Попробовал в параметры "NIL" ставить - так же :(
Johnmen (2003-12-18 11:48:00) [7]
Вот, кое-что подправил...
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 11:38:00) [8]
Вот весь код сначала и до конца:
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:34:00) [9]
Все-таки, видимо, не определено свойство Database, или определено неправильно... Или транзакция не определена...
Приведи код, только немного, самое существенное...
RUYurik (2003-12-18 11:25:00) [10]
Да, все в потоке, от динамического создания компонентов, коннекта до самого экстракта данных
RUYurik (2003-12-18 11:25:00) [11]
Да, все в одном потоке, от динамического создания компонентов, коннекта до самого экстракта данных
Johnmen (2003-12-18 11:23:00) [12]
>RUYurik © (18.12.03 11:20)
И коннект в том же потоке ? А надо бы в том же...
RUYurik (2003-12-18 11:20:00) [13]
Так я и делаю
Ex2.ExtractObject(eoTable,"PEOPLE",[etData]);
после коннекта. И еще забыл сказать может быть существенную деталь - все это в потоке
Johnmen (2003-12-18 11:15:00) [14]
>RUYurik ©
>И почему она должна быть открытой?
А как же ты хочешь получить что-то без коннекта ???!!!
:)
RUYurik (2003-12-18 11:09:00) [15]
> Johnmen ©
> Ex2.Database := mDB1;
> Ex2.Transaction := mTR;
И почему она должна быть открытой? вроде наоборот
Johnmen (2003-12-18 11:04:00) [16]
Проблема в том, что надо бы указать у экстракта базу данных и транзакцию. При этом БД д.б. открыта...
RUYurik (2003-12-18 11:03:00) [17]
Вот код:
...
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]);
...
на последней строке этого кода выскакивает ошибка
Кщд (2003-12-18 10:57:00) [18]
не что, а где :)
где код?
RUYurik (2003-12-18 10:55:00) [19]
> Кщд (18.12.03 10:50) [2]
> так код?
не понял, что код?
Кщд (2003-12-18 10:50:00) [20]
так код?