TIBDatabase ifm. ISAPI
Jeg har lavet en ASAPI-extension og vil gerne have den til at køre mod en IB 6.0 databaseHvis jeg kører nedenstående kode fra en exe-fil (i en Button1Click-proc), er der ingen problemer og jeg har også prøvet at lave et dll, der eksporterer en funktion, der i indhold er identisk med nedenstående kode og kalde den fra en exe-fil.
Begge dele fungerer fint.
Men når jeg bruger den samme kode i et TWebmodule, får jeg en exception : EIBInterBaseError -- unavailable database
Den exception kommer allerede ved DB.Open();
Balladen opstår både i Delphi 5 og 6.
Så er det, at jeg ikke forstår en meter.
Er der nogen, der kender en løsning på problemet, eller kan gennemskue, om jeg har gjort noget glat?
---------------------------------------------------------
procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
LangID : String;
Q : TIBQuery;
CurRec : PDataRec;
T : TIBTransaction;
DB : TIBDatabase;
begin
try try
CritSec.Enter;
LangID := Request.QueryFields[0];
if not StringUtil.IsInteger(LangID) then
raise EVSF.Create('LangID is not integer');
T := TIBTransAction.Create(nil);
DB := TIBDatabase.Create(nil);
DB.DefaultTransaction := T;
DB.DatabaseName := 'D:\Udvikling\Website\DB\Local\Vsf.gdb';
DB.Params.Add('user_name=sysdba');
DB.Params.Add('password=masterkey');
DB.LoginPrompt := False;
Debug.AddToLog('Opening DB');
DB.Open();
Debug.AddToLog('DB opened');
Q := TIBQuery.Create(nil);
Q.Database := DB;
Q.Transaction := T;
Q.Close();
Q.SQL.Clear();
Q.SQL.Add('SELECT * FROM VW_Text WHERE LangID = ' + LangID);
Debug.AddToLog('Opening Q');
Q.Open();