Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 01.07.2019, 07:44   #1
artemavd
Модератор
Заслуженный модератор
 
Регистрация: 05.06.2008
Сообщений: 4,180
Восклицание IBStoredProc, Firebird и DLL

Добрый день!
Суть какая.
Передаю соединение с сервером в DLL - это ок.
Создаю в DLL IBTransaction - это ок.
Создаю в DLL IBStoredProc - это ок.
Теперь мне надо просто выполнить хранимую процедуру через IBStoredProc с параметрами и тут я получаю Access Violation.
Вот код:
Код:
procedure msccTest(ACliHandle: Pointer; _ShortName: PWideChar);
var
  tempIBStoredProc : TIBStoredProc;
  tempIBDatabase: TIBDatabase;
  tempIBTransaction: TIBTransaction;
begin
  tempIBDatabase:=TIBDatabase.Create(nil);

  tempIBTransaction:=TIBTransaction.Create(nil);
  tempIBTransaction.DefaultDatabase:=tempIBDatabase;

  try
    tempIBDatabase.SetHandle(ACliHandle);
    tempIBDatabase.Connected:=True;

    tempIBStoredProc:=TIBStoredProc.Create(nil);
    tempIBStoredProc.Transaction:=tempIBTransaction;
    tempIBStoredProc.Database:=tempIBDatabase;
    tempIBStoredProc.StoredProcName:='FM1SP0';
    tempIBStoredProc.Prepare;
    tempIBStoredProc.Current.ByName('P03').Value:='1';
    tempIBStoredProc.ExecProc;
    tempIBTransaction.Commit;
  finally
    FreeAndNil(tempIBStoredProc);
    FreeAndNil(tempIBTransaction);
    FreeAndNil(tempIBDatabase);
  end;
end;
AV появляется, как показал отладчик, при работе с параметрами IBStoredProc, т.к. все остальные действия с динамическим IBStoredProc не вызывают данной ошибки.
Прощу помощи в решении это проблемы.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 01.07.2019, 21:48   #2
mihаli4
никакой
Пользователь
 
Аватар для mihаli4
 
Регистрация: 21.05.2018
Сообщений: 31
По умолчанию

Цитата:
Создаю в DLL IBStoredProc - это ок.
Теперь мне надо просто выполнить хранимую процедуру... и тут я получаю Access Violation.
Вы знаете, сейчас сезон отпусков начался, поэтому все экстрасенсы разъехались "по морям".
Посему, ежели вам не очень трудно, вы уж приведите тексты ваших StoredProc, дабы желающие смогли на них критично поглазеть
Ведь у вас именно там возникает ужасная "Access Violation"?
mihаli4 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
IB or ADO для FireBird Dozent БД в Delphi 13 24.12.2012 13:51
udf для firebird Sparky Помощь студентам 5 15.11.2012 17:01
FireBird Д'якон БД в Delphi 2 04.12.2008 12:15
FireBird 1.5.4 Nikola__ БД в Delphi 2 17.11.2008 15:42


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS