mit dieser Bibliothek ist es möglich, ohne ODBC auf MSSQL-Datenbanken zuzugreifen und SQL-Abfragen (z.B. Select, Insert Into, Update, Drop Table, ...) auszuführen.
Funktionen:
- ExecuteSQLQuery()
- Syntax:
Code: Alles auswählen
Result = ExecuteSQLQuery(ConnectionString$, SQL$, Timeout, @Output, @ErrorOutput)
- Beschreibung: Führt eine SQL-Abfrage aus.
- Parameter:
- ConnectionString$: Verbindungsdaten für den Server und für die Datenbank.
- SQL$: SQL-Code zum Ausführen einer Abfrage.
- Timeout: Zeit in Sekunden, wie lange maximal auf den Vorgang gewartet werden soll. Wenn 0 angegeben wurde, dann wird so lange gewartet, bis der Vorgang fertig ist.
- @Output: Das Ergebnis der Abfrage wird im XML-Format in die String-Variable gespeichert.
- @ErrorOutput: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Beispielcode:
Code: Alles auswählen
EnableExplicit Global PBEx_MSSQL CompilerIf #PB_Compiler_Processor = #PB_Processor_x86 PBEx_MSSQL = OpenLibrary(#PB_Any, "PB.Ex_MSSQL_x86.dll") CompilerElseIf #PB_Compiler_Processor = #PB_Processor_x64 PBEx_MSSQL = OpenLibrary(#PB_Any, "PB.Ex_MSSQL_x64.dll") CompilerEndIf If PBEx_MSSQL Prototype ExecuteSQLQuery(ConnectionString.p-Unicode, SQL.p-Unicode, Timeout, Output, ErrorOutput) Global ExecuteSQLQuery.ExecuteSQLQuery = GetFunction(PBEx_MSSQL, "ExecuteSQLQuery") Prototype GetDatabaseBlobEx(ConnectionString.p-Unicode, Table.p-Unicode, Column.p-Unicode, Where.p-Unicode, Memory, MemoryLength, ErrorOutput) Global GetDatabaseBlobEx.GetDatabaseBlobEx = GetFunction(PBEx_MSSQL, "GetDatabaseBlobEx") Prototype SetDatabaseBlobEx(ConnectionString.p-Unicode, Table.p-Unicode, Column.p-Unicode, Where.p-Unicode, Memory, MemoryLength, ErrorOutput) Global SetDatabaseBlobEx.SetDatabaseBlobEx = GetFunction(PBEx_MSSQL, "SetDatabaseBlobEx") Define Output$ = Space(1000000) Define ErrorOutput$ = Space(1024) ;-Please change this Define Server$ = "YourServer" Define Database$ = "YourDatabase" Define User$ = "YourUsername" Define Password$ = "YourPassword" ;==================================================================================================== ;-Get records from table If ExecuteSQLQuery("Server=" + Server$ + ";Database=" + Database$ + ";User Id=" + User$ + ";Password=" + Password$ + ";", "SELECT * FROM MyTable", 0, @Output$, @ErrorOutput$) ParseXML(1, Output$) FormatXML(1, #PB_XML_WindowsNewline | #PB_XML_ReFormat | #PB_XML_ReIndent) Debug ComposeXML(1) Else Debug "Error: " + ErrorOutput$ EndIf ;==================================================================================================== ;-Create new record in table ; If ExecuteSQLQuery("Server=" + Server$ + ";Database=" + Database$ + ";User Id=" + User$ + ";Password=" + Password$ + ";", "INSERT INTO MyTable (Prename, Lastname, Age, IsEnabled) VALUES ('Max', 'Mustermann', 18, 1) ", 0, @Output$, @ErrorOutput$) ; Debug "Successful" ; Else ; Debug "Error: " + ErrorOutput$ ; EndIf ;==================================================================================================== ;-Import file to database ;1. Load the file into memory. ; Define length ; Define *MemoryID ; Define bytes ; If ReadFile(1, "YourImage.png") ; length = Lof(1) ; *MemoryID = AllocateMemory(length) ; If *MemoryID ; bytes = ReadData(1, *MemoryID, length) ; EndIf ; CloseFile(1) ; EndIf ; ; ;2. Send the memory to database. ; If SetDatabaseBlobEx("Server=" + Server$ + ";Database=" + Database$ + ";User Id=" + User$ + ";Password=" + Password$ + ";", "MyTable", "BinText", "ID = 2", *MemoryID, bytes, @ErrorOutput$) ; Debug "Successful" ; Else ; Debug "Error: " + ErrorOutput$ ; EndIf ;==================================================================================================== ;-Export file from database ; ;1. Determine the size of the file to be created. ; Define FileLength ; FileLength = GetDatabaseBlobEx("Server=" + Server$ + ";Database=" + Database$ + ";User Id=" + User$ + ";Password=" + Password$ + ";", "MyTable", "BinText", "ID = 2", 0, 0, @ErrorOutput$) ; If FileLength = 0 ; Debug "Error: " + ErrorOutput$ ; EndIf ; ; ;2. Import and save file. ; Define *MemoryID2 = AllocateMemory(FileLength) ; If GetDatabaseBlobEx("Server=" + Server$ + ";Database=" + Database$ + ";User Id=" + User$ + ";Password=" + Password$ + ";", "MyTable", "BinText", "ID = 2", *MemoryID2, FileLength, @ErrorOutput$) ; If CreateFile(1, "YourImageFromDB.png") ; WriteData(1, *MemoryID2, FileLength) ; CloseFile(1) ; EndIf ; Debug "Successful" ; Else ; Debug "Error: " + ErrorOutput$ ; EndIf CloseLibrary(PBEx_MSSQL) EndIf
- GetDatabaseBlobEx()
- Syntax:
Code: Alles auswählen
Result = GetDatabaseBlobEx(ConnectionString$, Table$, Column$, Where$, Memory, MemoryLength, @ErrorOutput)
- Beschreibung: Exportiert eine Datei aus einer Tabellen-Spalte eines Record-Eintrages.
- Parameter:
- ConnectionString$: Verbindungsdaten für den Server und für die Datenbank.
- Table$: Name der Tabelle.
- Column$: Name der Spalte.
- Where$: Bedingung, um einen eindeutigen Record-Eintrag zu finden.
- Memory: Ziel-Speicher für die exportierende Datei. Wenn 0, dann wird die Länge der Datei zurückgegeben.
- MemoryLength: Länge des Ziel-Speichers. Die Länge muss zuerst ermittelt werden.
- @ErrorOutput: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich. Oder die Länge der Datei.
- SetDatabaseBlobEx()
- Syntax:
Code: Alles auswählen
Result = SetDatabaseBlobEx(ConnectionString$, Table$, Column$, Where$, Memory, MemoryLength, @ErrorOutput)
- Beschreibung: Importiert eine Datei in eine Tabellen-Spalte eines Record-Eintrages.
- Parameter:
- ConnectionString$: Verbindungsdaten für den Server und für die Datenbank.
- Table$: Name der Tabelle.
- Column$: Name der Spalte.
- Where$: Bedingung, um einen eindeutigen Record-Eintrag zu finden.
- Memory: Speicher einer geladenen Datei.
- MemoryLength: Länge des Speichers.
- @ErrorOutput: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
- .NET Framework 4.7.2 oder höher
- Unicode-Aktivierung (standardmäßig ab PB 5.50)
Lizenz: Diese DLL-Datei ist kostenlos und darf sowohl privat als auch kommerziell verwendet werden.
Folgende Copyright-Texte müssen mitgeliefert werden:
Download: https://www.rsbasic.de/downloads/downlo ... _MSSQL.zipCopyright © 2019 RSBasic.de
Ich würde mich über Feedbacks, Verbesserungsvorschläge, Fehlermeldungen oder Wünsche sehr freuen. Wer mich unterstützen möchte, kann mir auch was kleines spenden. Danke - Syntax:
- Syntax: