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

Вниз

Ошибка при обращении к таблице   Найти похожие ветки 

 
carmen ©   (2006-05-18 18:16) [0]

Пишу прогу с использование пакетов (bpl). Имеется основной модуль, который по необходимости загружает нужний пакет. Также имеется модуль базы данных. Проблема в следующем.
Модуль базы данных содержит описание базы данных, основных справочников. Один из пакетов использует этот модуль базы данных, объявляется в implementation через uses DataModule.
Так вот, если из пакета обратится к таблице из модуля базы данных возникает ошибка: Access violation at adress 014128F in module "My_Module.Bpl". Read of address 000000DC. Если описываю данную таблицю в этом пакете, ошибки нет. Обращаюсь к таблице модуля базы данных так: Data.Q_Get_SQL.ParamByName("name_sql").AsString:="select_saldo";
Data.Q_Get_SQL.ParamByName("type_sql").AsString:="SELECT";
Data.Q_Get_SQL.ExecQuery;
Data это имя модулябазы данных. Что делаю нетак???


 
Desdechado ©   (2006-05-18 18:26) [1]

видимо, датамодуль не создан к моменту вызова таблицы из пакета


 
carmen ©   (2006-05-18 19:04) [2]

автоматом создается главная форма и датамодуль.
когда это все загружено идет загрузка пакетов.


 
Mike Kouzmine ©   (2006-05-18 22:41) [3]

carmen ©   (18.05.06 19:04) [2]
 Desdechado ©   (18.05.06 18:26) [1]
   видимо, датамодуль не создан к моменту вызова таблицы из пакета

Проверь порядок создания объектов.


 
Carmen ©   (2006-05-18 23:23) [4]

датамодуль на момент загрузки пакета уже загружен. Загруженный пакет использует информацию основной базы, транзакции из датамодуля. Все таблицы пакета используют эту информацию из датамодуля и работают нормально. ошибка возникает когда хочу обратится к таблице описаной в датамодуле.


 
Carmen ©   (2006-05-19 09:19) [5]

а больше не советов?


 
ANB ©   (2006-05-19 10:04) [6]


> Carmen ©   (19.05.06 09:19) [5]

Ничего не понял.
Давай ка подробнее.
И так - у тебя есть основной экзешник, к которому ты прикомпилял модуль данных.
Из экзешника ты вызывешь (я так понял - динамически) пакет.
И пакета лезешь к модуль данных основного приложения.
Вопрос - как ты связал модуль данных с основным приложением ?
Если просто прикомпилял - будет AV.
Нужно передать в пакет адрес модуля данных и уже с ним работать в пакете.
При этом экзешник и пакет должны быть скомпилены на одной делфе.


 
ANB ©   (2006-05-19 10:05) [7]


> Carmen ©   (18.05.06 23:23) [4]

А экзешник скомпилен с использованием рантайм пакетов ?


 
Carmen ©   (2006-05-19 13:06) [8]


> Ничего не понял.
> Давай ка подробнее.
> И так - у тебя есть основной экзешник, к которому ты прикомпилял
> модуль данных.
> Из экзешника ты вызывешь (я так понял - динамически) пакет.
>
> И пакета лезешь к модуль данных основного приложения.
> Вопрос - как ты связал модуль данных с основным приложением
> ?
> Если просто прикомпилял - будет AV.
в подгружаемом пакете этот же датамодуль подключаю через uses

> Нужно передать в пакет адрес модуля данных и уже с ним работать
> в пакете.
а как его передать?

> При этом экзешник и пакет должны быть скомпилены на одной
> делфе.

одна


 
ANB ©   (2006-05-19 13:51) [9]


> в подгружаемом пакете этот же датамодуль подключаю через
> uses

Вот здесь и кроется ошибка.


> а как его передать?

Передать через параметр какой нибудь функции пакета. В пакете можно сохранить адрес локально, а можно передавать каждой функции пакета.

И обязательно экзешник компилять с флагом "использовать рантайм пакеты".


 
Carmen ©   (2006-05-19 13:57) [10]


> И обязательно экзешник компилять с флагом "использовать
> рантайм пакеты".

так и компилю.
А можно пример по передачы адреса.



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

Форум: "Начинающим";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.041 c
2-1148054439
Мурзилка
2006-05-19 20:00
2006.06.04
кодировки


15-1147356788
Петр
2006-05-11 18:13
2006.06.04
Delphi


2-1147712772
***(H@kker)***
2006-05-15 21:06
2006.06.04
Как это делает WinAmp


2-1147978707
delta123
2006-05-18 22:58
2006.06.04
Help Pls!!!!!!!!!!!!!!!!!!!!!!!!!


2-1147470240
Призрак
2006-05-13 01:44
2006.06.04
COM-порт





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