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

Вниз

Залипание после запросов.   Найти похожие ветки 

 
MixerPro   (2003-12-19 11:54) [0]

Есть 2 базы InterBase. Одна моя, другая - чужая.
На основе своей базы написан уже большой проект и все работает. Но вот появилась задача сконвертированть нужные данные из чужой БД в мою.
1. Открываю обе ДБ
2. Выполняю большой объем запросов по чужой БД типа "Select ... Where ..."
3. Записываю в файл (просто так надо)
4. Выхожу из программы.
При выходе программа залипает. Если конвертирование было в небольшом объеме, то через пол минуты программа отмокает.
Так вот может она за собой транзакции чистит... Не пойму, где траблы?

Если объяснил не достаточно понятно, то могу конкретизированть.
Спасибо.


 
Johnmen   (2003-12-19 11:57) [1]

1. Компоненты доступа ?
2. Управление транзакциями ?


 
MixerPro   (2003-12-24 11:37) [2]

1. Компоненты доступа:
dbSicon:TIBDatabase
transSicon:TIBTransaction
dsD:TDataSource
qD:TIBQuery
то же самое по другой БД
2. Свойства транзакции:
DefaultAction = TARollBack (база только читается, данные пишутся в файл)

Фактически открыты две БД. По обеим БД идет только чтение, а данные пишутся в файл.
По обеим БД компоненты отдельные, т.е. для каждой БД свои IBDatabase,IBTransaction, DataSource, IBQuery.
Запрос к БД:
CurrIbQ.SQL.Clear;
CurrIbQ.SQL.Add("Select D.* from Data D where .......");
try CurrIbQ.Open;
// далее по всем выбранным записям читаю данные
// ........
// ........
dmSicon.qD.Close;
if dmSicon.transSicon.Active then dmSicon.transSicon.Rollback; // это уже лишнее наверное

После такого запроса при параллельной работе с той же БД другой программой (давно отлаженной) при закрытии программы выходит сообщение "Connection lost to database".
В каком случаю теряется соединение с базой ????

Помогите пж-та! Есть идеи?


 
MixerPro   (2003-12-24 11:41) [3]

Вместо
dmSicon.qD.Close;
CurrIbQ.Close;


 
Johnmen   (2003-12-24 11:42) [4]

Желательно всё же коммитить читающую транзакцию. А завершать её обязательно. Перед завершением работы...


 
MixerPro   (2003-12-24 11:52) [5]

1. Т.е. вместо transSicon.Rollback пишем transSicon.Commit ?
2. Таких запросов в цикле много. CurrIbQ.Close делать после заждого запроса ?


 
Johnmen   (2003-12-24 11:54) [6]

1. Да.
2. Close делать всегда, когда запрос уже не нужен. А после этого Commit.


 
Кщд   (2003-12-24 11:59) [7]

А если структура соурс и дестинишн одинакова, то BatchOutput/BatchInput


 
MixerPro   (2003-12-24 12:24) [8]

Зачем использовать BatchOutput/BatchInput ?


 
Кщд   (2003-12-24 12:49) [9]

MixerPro © (24.12.03 12:24) [8]
"Но вот появилась задача сконвертированть нужные данные из чужой БД"

если под "сконвертировать" подразумевался просто перенос
если нет, то нет


 
MixerPro   (2003-12-24 12:50) [10]

Проблема в том, что все вроде работает, но программа не закрывается долго - от пол минуты при небольшом числе запросов и дольше.
Т.е. как будто она память за собой чистит.
Вообще кто нибудь пробовал работать одновременно с двумя interBase базами?



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

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

Наверх





Память: 0.47 MB
Время: 0.009 c
6-63282
nik_
2003-11-18 08:33
2004.01.20
Socket-ы. Проверка соединения.


1-63158
Rimd
2004-01-06 16:51
2004.01.20
Rave Report


1-63084
BlackLord2003
2004-01-08 14:35
2004.01.20
Список файлов в TListBox.


1-63136
афвуд
2004-01-07 16:31
2004.01.20
Полосатый ListBox


1-63215
SJ-79
2004-01-09 03:22
2004.01.20
Создание hlp файла





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