Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
9-49384
mrk
2003-06-03 15:17
2004.01.16
прозрачная текстура md3 и Glscene


3-49460
vvh
2003-12-18 00:45
2004.01.16
Какие ограничения на количество записей в таблицах IB


1-49562
hlomzik
2004-01-06 03:40
2004.01.16
Синхронизация скроллинга двух контролов


7-49777
xghost
2003-11-04 09:41
2004.01.16
Проблема с hook


3-49465
Dimmu
2003-12-17 17:06
2004.01.16
Поле типа data/time в Access





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