Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.16;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.016 c
1-49605
k_len
2004-01-05 11:02
2004.01.16
ComboBox


14-49709
Delirium
2003-12-25 19:01
2004.01.16
Забавный глюк IE


3-49417
new
2003-12-19 09:54
2004.01.16
можно ли таблицы paradox7 не связывать через database decstop


1-49523
tgb
2004-01-03 07:19
2004.01.16
Перехват Api в чужом процессе


1-49551
mik_1
2004-01-01 22:29
2004.01.16
Application.ProcessMessages