Met de komst van multithreaded fmsserver 13 lopen we tegen licentie problemen aan omdat we over de 5 simultane ODBC connecties heen gaan terwijl er in mijn ogen 1 ODBC-connectie wordt gelegd. Het query bestaat uit een hoofdquery en subqueries per up te loaden record. Er is een hoofdscript dat in variabelen de queries creëert en er zijn subscripts die de queries uitvoeren. Een subquery-script is een simpel kort scriptje dat de scriptparameter hanteert als query-tekst en deze wordt gedraaid als 'Perform Script on server [Wait for completion]' van uit het hoofdscript om te zorgen dat niet elke client een eigen ODBC-connetor nodig heeft. De code vind je hieronder, wat het script nog meer doet is de data in een log-record vastleggen en evt errors als script-result terugsturen.
Het duurt misschien lang maar ik veronderstel dat dit script op deze manier slechts 1 ODBC-connetie nodig heeft. Verder moet het hoofdrecord eerst bestaan voordat de subrecords worden aangemaakt anders krijgen we relationele problemen in de SQL-server db.
Ik maak gebruik van Actualtech ODBC-drivers; ze hebben ook deze vraag gekregen maar meer gesteld vanuit 'hoeveel licenties zijn er nodig dan?'
Set Error Capture [ On ]
Go to Layout [ “ImportLogs” (IMPORT_logs) ]
New Record/Request
Set Variable [ $query; Value:Get (ScriptParameter) ]
Set Field [ IMPORT_logs::Log output; Get (ScriptName) & "-started.¶" & $query ]
Execute SQL [ ODBC Data Source: “shared_db.life”; Calculated SQL Text: $query ] [ No dialog ]
Set Variable [ $error; Value:Case (Get ( LastError ) ≠ 0 and not IsEmpty (Get ( LastError ) ) ; "lasterror: " & Get ( LastError ) ; "" ) & Case (Get ( LastODBCError ) ≠ 0 and not IsEmpty (Get ( LastODBCError ) ) ; "¶odbc error: " & Get ( LastODBCError ) ; "" ) ]
New Record/Request
Set Field [ IMPORT_logs::Log output; Get (ScriptName) & "-finished.¶" & "lasterror: " & Get ( LastError ) &
"¶odbc errors: " & Get ( LastODBCError ) ] Go to Layout [ original layout ]
Question
relatieboot
Geachte Leden (der ...),
Met de komst van multithreaded fmsserver 13 lopen we tegen licentie problemen aan omdat we over de 5 simultane ODBC connecties heen gaan terwijl er in mijn ogen 1 ODBC-connectie wordt gelegd. Het query bestaat uit een hoofdquery en subqueries per up te loaden record. Er is een hoofdscript dat in variabelen de queries creëert en er zijn subscripts die de queries uitvoeren. Een subquery-script is een simpel kort scriptje dat de scriptparameter hanteert als query-tekst en deze wordt gedraaid als 'Perform Script on server [Wait for completion]' van uit het hoofdscript om te zorgen dat niet elke client een eigen ODBC-connetor nodig heeft. De code vind je hieronder, wat het script nog meer doet is de data in een log-record vastleggen en evt errors als script-result terugsturen.
Het duurt misschien lang maar ik veronderstel dat dit script op deze manier slechts 1 ODBC-connetie nodig heeft. Verder moet het hoofdrecord eerst bestaan voordat de subrecords worden aangemaakt anders krijgen we relationele problemen in de SQL-server db.
Ik maak gebruik van Actualtech ODBC-drivers; ze hebben ook deze vraag gekregen maar meer gesteld vanuit 'hoeveel licenties zijn er nodig dan?'
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.