Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2011, 10:57   #1
Рустам
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 260
По умолчанию ADOQuery в *.DLL - Выдаёт ошибку...

Здрасьте! Такая вот штука,
подгружаем DLL - ку и открываем из неё форму. в DataModule лежит Query

после загрузки всего вышеперечисленного пишу:
Код:
 Procedure TData.Load_List(grup: integer);
var i:integer;
begin
  with Data.ADOQuery1 do begin
   active:=false;
    ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=Shop;SERVER=192.168.1.111;UID=root;DATABASE=shop;PORT=3306"';
    sql.Clear;
    sql.Add('select * from tovar;'); // where grup='+inttostr(grup)+';');
    active:=true;
    first;

  for i:=0 to RecordCount-1 do begin
    with Form1.List do begin
      Items.Add.Caption:=FieldValues['num'];
      Items[i].SubItems.Add(FieldValues['name']);
      Items[i].SubItems.Add(FieldValues['price']);
      Items[i].SubItems.Add(FieldValues['grup']);
    end;
    next;
  end;
  active:=false;
  end;
end;
и ту тебе бах-хх-х::: Access violation at address 00C99C2C in module... read of address 00000058

Где я ошибся???
Чё ей надо???
Хорошо не там, где нас нет, а там, где нас еще небыло!!!

Последний раз редактировалось Рустам; 10.06.2011 в 12:17.
Рустам вне форума Ответить с цитированием
Старый 10.06.2011, 12:19   #2
Рустам
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 260
По умолчанию

Значит вот какое дело! Методом Рандом_Тыка выяснилось, что DLL-ка начинает матюкаться уже после добавления компоненты ADOQuery...
К чему это...??? Что ей так не нравится в ADOQuery???
Хорошо не там, где нас нет, а там, где нас еще небыло!!!
Рустам вне форума Ответить с цитированием
Старый 10.06.2011, 12:52   #3
Рустам
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 260
По умолчанию

РЕШЕНО!
.............не использовать DataModule в DLL-ках...
.............вместо ADOQuery(ADO) использовать Query(BDE)...
получилось так:
Код:
Procedure TForm1.Load_List(grup: integer);
var i:integer;
begin
  with Query1 do begin
   active:=false;
    DatabaseName:='Shop';
   sql.Clear;
   sql.Add('select * from tovar;'); // where grup='+inttostr(grup)+';');
   active:=true;
   first;
  for i:=0 to RecordCount-1 do begin
    with Form1.List do begin
      Items.Add.Caption:=FieldValues['num'];
      Items[i].SubItems.Add(FieldValues['name']);
      Items[i].SubItems.Add(FieldValues['price']);
      Items[i].SubItems.Add(FieldValues['grup']);
    end;
    next;
  end;
  active:=false;
  end;
end;
Как то так!!!
P.S. На самом деле просто нет времени разбираться с ADOQuery...
Хорошо не там, где нас нет, а там, где нас еще небыло!!!
Рустам вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выдаёт ошибку Stanislava7 Общие вопросы C/C++ 1 05.05.2010 17:55
htaccess выдаёт ошибку memka PHP 11 14.04.2009 01:16
Выдаёт ошибку: acos DOMAIN error,полсе нажатия окей,ещё одну ошибку pow OWERFLAW ERROR prikolist Общие вопросы C/C++ 4 10.04.2009 20:27
Выдаёт ошибку DM_bite Помощь студентам 2 08.08.2008 10:33