Hi Michael,
I have used stored procedures and indeed you have to declare-external each file you want to use of your analysis. In fact at the time of running the procedure, there is no analysis known by the database. So also no intellisense, etc. But I have an example procedure for you. All external declared files in this procedure are in my analysis. Sorry, comments are in Dutch ...
I hope it will help you.
PROCEDURE SaveRelatie(pvRelatieFields is Variant) // // pvRelatieFields heeft formaat: "123","Bedrijfsnaam","Adres","Postcode","Plaats","Landnaam","Telefoon","Telefoon2","Fax","Website","email" // LOCAL lsResult is string liRelatieID is int liRelatietypeID is int dsLand is Data Source dsRelatie is Data Source dsRelatietype is Data Source dsRelatieRelatietype is Data Source dsChangeLog is Data Source dsErrorLog is Data Source // voor error-logging HDeclareExternal("TblRelatie.FIC",dsRelatie) HDeclareExternal("TblLand.FIC",dsLand) HDeclareExternal("TblRelatietype.FIC",dsRelatietype) HDeclareExternal("TblRelatie_TblRelatietype.FIC",dsRelatieRelatietype) HDeclareExternal("TblChangeLog.FIC",dsChangeLog) HDeclareExternal("TblErrorLog.FIC",dsErrorLog) lsResult = 0 // Bepaal huidige waarde RelatieID, 0 = nieuw record, >0 is bestaand record liRelatieID = Val(Replace(ExtractString(pvRelatieFields,1,""",""",FromBeginning),"""","")) IF liRelatieID > 0 THEN IF NOT HReadSeekFirst(dsRelatie,TblRelatieID,liRelatieID) THEN // Als een bestaand record niet gelezen kan worden, // wordt automatisch alsnog een nieuw record aangemaakt ! liRelatieID = 0 END END IF liRelatieID = 0 THEN // Voor nieuw record, ID bepalen van Relatietype - NIEUW IF HReadSeekFirst(dsRelatietype,SoortType,"NIEUW") THEN liRelatietypeID = dsRelatietype.TblRelatietypeID ELSE HReset(dsRelatietype) dsRelatietype.TblRelatietypeCD = "Nieuw" dsRelatietype.SoortType = "NIEUW" IF NOT HAdd(dsRelatietype) THEN // Write errorlog HReset(dsErrorLog) dsErrorLog.ErrorDatum = DateSys() dsErrorLog.ErrorTijd = TimeSys() dsErrorLog.TblMedewerkerID = 0 dsErrorLog.Content = "SP - SaveRelatie(); Error writing TblRelatietype: " + ErrorInfo(errCode) dsErrorLog.CodeContext = "Line 58; IF NOT HAdd(dsRelatietype) THEN ..." HAdd(dsErrorLog) ELSE liRelatietypeID = dsRelatietype.TblRelatietypeID END END HReset(dsRelatie) dsRelatie.actief = True dsRelatie.LandPost = "" dsRelatie.LandFactuur = "" END dsRelatie.Bedrijfsnaam = Replace(ExtractString(pvRelatieFields,2,""",""",FromBeginning),"""","") dsRelatie.AdresBezoek = Replace(ExtractString(pvRelatieFields,3,""",""",FromBeginning),"""","") dsRelatie.PostcodeBezoek = Replace(ExtractString(pvRelatieFields,4,""",""",FromBeginning),"""","") dsRelatie.PlaatsBezoek = Upper(Replace(ExtractString(pvRelatieFields,5,""",""",FromBeginning),"""","")) dsRelatie.LandBezoek = Replace(ExtractString(pvRelatieFields,6,""",""",FromBeginning),"""","") dsRelatie.Telefoon = Replace(ExtractString(pvRelatieFields,7,""",""",FromBeginning),"""","") dsRelatie.Telefoon2 = Replace(ExtractString(pvRelatieFields,8,""",""",FromBeginning),"""","") dsRelatie.telefax = Replace(ExtractString(pvRelatieFields,9,""",""",FromBeginning),"""","") dsRelatie.Website = Replace(ExtractString(pvRelatieFields,10,""",""",FromBeginning),"""","") dsRelatie.Email = Replace(ExtractString(pvRelatieFields,11,""",""",FromBeginning),"""","") IF Left(dsRelatie.achternaam) = "" THEN dsRelatie.achternaam = dsRelatie.Bedrijfsnaam END IF liRelatieID = 0 _OR_ Left(dsRelatie.TblRelatieCD) = "" THEN // Stel de relatieCD vast, 1e 3 pos. van de naam + 1e 3 pos. van de plaats, geconverteerd naar uppercase. dsRelatie.TblRelatieCD = Upper(dsRelatie.Bedrijfsnaam[[1 TO 3]] + dsRelatie.PlaatsBezoek[[1 TO 3]]) END IF Left(dsRelatie.Bedrijfsnaam) = "" THEN lsResult = "0" + TAB + "Invalid value for 'Bedrijfsnaam'" ELSE IF dsRelatie.LandBezoek > "" _AND_ NOT HSeekFirst(dsLand,Landnaam,dsRelatie.LandBezoek) THEN lsResult = "0" + TAB + "Invalid value for 'LandBezoek', no reference in TblLand" ELSE IF liRelatieID = 0 THEN IF NOT HAdd(dsRelatie) THEN lsResult = "0" + TAB + "Error writing TblRelatie: " + ErrorInfo(errCode) HReset(dsErrorLog) dsErrorLog.ErrorDatum = DateSys() dsErrorLog.ErrorTijd = TimeSys() dsErrorLog.TblMedewerkerID = 0 dsErrorLog.Content = "SP - SaveRelatie(); Error writing TblRelatie: " + ErrorInfo(errCode) dsErrorLog.CodeContext = "Line 103; IF NOT HAdd(dsRelatie) THEN ..." HAdd(dsErrorLog) ELSE // Nieuw TblRelatieID in het resultaat zetten lsResult = NumToString(dsRelatie.TblRelatieID) // Schrijf ook een record in TblCangeLog HReset(dsChangeLog) dsChangeLog.Entity = "TblRelatie" dsChangeLog.Changetype = 10 // Constante is hier niet bereikbaar ! dsChangeLog.Identifier = dsRelatie.TblRelatieID dsChangeLog.ChangeDate = DateSys() + TimeSys() // Server date+time dsChangeLog.ChangeUser = HRuntimeInfo.Login IF HAdd(dsChangeLog) THEN // Niets doen END // Koppel relatietype - Nieuw aan deze nieuwe relatie IF liRelatietypeID > 0 THEN HReset(dsRelatieRelatietype) dsRelatieRelatietype.TblRelatieID = dsRelatie.TblRelatieID dsRelatieRelatietype.TblRelatietypeID = liRelatietypeID IF NOT HAdd(dsRelatieRelatietype) THEN // Schrijf errorlog HReset(dsErrorLog) dsErrorLog.ErrorDatum = DateSys() dsErrorLog.ErrorTijd = TimeSys() dsErrorLog.TblMedewerkerID = 0 dsErrorLog.Content = "SP - SaveRelatie(); Error writing TblRelatie_TblRelatietype: " + ErrorInfo(errCode) dsErrorLog.CodeContext = "Line 134; IF NOT HAdd(dsRelatieRelatietype) THEN ..." HAdd(dsErrorLog) END END END ELSE IF NOT HModify(dsRelatie) THEN lsResult = "0" + TAB + "Error modifying TblRelatie: " + ErrorInfo(errCode) HReset(dsErrorLog) dsErrorLog.ErrorDatum = DateSys() dsErrorLog.ErrorTijd = TimeSys() dsErrorLog.TblMedewerkerID = 0 dsErrorLog.Content = "SP - SaveRelatie(); Error modifying TblRelatie: " + ErrorInfo(errCode) dsErrorLog.CodeContext = "Line 147; IF NOT HModify(dsRelatie) THEN ..." HAdd(dsErrorLog) ELSE lsResult = NumToString(dsRelatie.TblRelatieID) // Schrijf ook een record in TblCangeLog HReset(dsChangeLog) dsChangeLog.Entity = "TblRelatie" dsChangeLog.Changetype = 20 // Constante is hier niet bereikbaar ! dsChangeLog.Identifier = dsRelatie.TblRelatieID dsChangeLog.ChangeDate = DateSys() + TimeSys() // Server date+time dsChangeLog.ChangeUser = HRuntimeInfo.Login IF HAdd(dsChangeLog) THEN // Niets doen END END END END END RESULT lsResult |