Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.19;
Скачать: CL | DM;

Вниз

Несрабатывает передача параметра с 1-го раза , почему?   Найти похожие ветки 

 
YOjik   (2006-10-11 15:49) [0]

В dll:
procedure Run_filter_inv_as_main_filter(App: HWnd ;OraSession: TOraSession; KeyField, Psevdonim: shortString; var SQLText: PChar); STDCALL;
begin
 Application.Handle := App;
 FrmMain_Filter_Investor := TFrmMain_Filter_Investor.Create(Application);
 try
   FrmMain_Filter_Investor.OraSession.AssignConnect(OraSession);
   FrmMain_Filter_Investor.FilterMode := fmMainFilter;
   FrmMain_Filter_Investor.Psevdonim := Psevdonim;
   FrmMain_Filter_Investor.SourceSQL := StrPas(SQLText);
   FrmMain_Filter_Investor.ShowModal;

   SQLText := PChar(FrmMain_Filter_Investor.SourceSQL + #0);
 finally
   FrmMain_Filter_Investor.Free;
 end;
end;


То есть возвращаю SQLText
В программе:
var
 sqlt: PChar;
 s: string;
begin
 s := OraQuery2.SQL.Text;
 sqlt :=  PChar(s + #0);
 Run_filter_inv_as_main_filter(Application.Handle, OraSession1, "SIK", "INV", sqlt);
 s := String(sqlt);
 Form1.OraQuery2.Close;
 Form1.OraQuery2.SQL.Text := s;
 Form1.OraQuery2.Open;
end;

В строчке   s := String(sqlt); возникает exception , а вот второй раз вызова всё нормально, пробовал StrPCopy, StrPas - не помогает, как лечить?


 
Desdechado ©   (2006-10-11 16:03) [1]

1. зачем var для SQLText: PChar ? это же и так указатель
2. не надо никаких нулей дописывать в конец, преобразование String - PChar - String и так нули вполне обрабатывает
3. зачем пытаться возвращать SQL ?
4. если уж пытаешься возвращать SQL, выдели память под него
5. в программе как описан прототип вызываемой из DLL функции?


 
Stanislav ©   (2006-10-11 16:04) [2]

Нужно SQLT задать размер.


 
YOjik   (2006-10-12 07:21) [3]

Спасибо ВАМ, дейстивительно надо было выделить память, а var и #0 в конце я писал так уже от безисходности ).



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

Текущий архив: 2006.11.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.033 c
15-1161807138
Petr V.Abramov
2006-10-26 00:12
2006.11.19
Что Вы понимаете под "жить хорошо"?


2-1162238869
Evo
2006-10-30 23:07
2006.11.19
ошибка блин


2-1162405074
Gamer
2006-11-01 21:17
2006.11.19
Отправка сообщения по сети


1-1160471759
regdown
2006-10-10 13:15
2006.11.19
Вопрос Файл Delphi7


15-1162149015
Ketmar
2006-10-29 22:10
2006.11.19
только не мой мозг...