PB.Ex MSSQL (Windows)

Anwendungen, Tools, Userlibs und anderes nützliches.
RSBasic
Admin
Beiträge: 7882
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

PB.Ex MSSQL (Windows)

Beitrag von RSBasic »

Hallo,

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:
      1. ConnectionString$: Verbindungsdaten für den Server und für die Datenbank.
      2. SQL$: SQL-Code zum Ausführen einer Abfrage.
      3. 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.
      4. @Output: Das Ergebnis der Abfrage wird im XML-Format in die String-Variable gespeichert.
      5. @ErrorOutput: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 0: 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")
        
        Define Output$ = Space(1000000)
        Define ErrorOutput$ = Space(1024)
        
        If ExecuteSQLQuery("Server=YourServer;Database=YourDatabase;User Id=YourUsername;Password=YourPassword;", "SELECT * FROM MyTable", 0, @Output$, @ErrorOutput$) = 0
          ParseXML(1, Output$)
          FormatXML(1, #PB_XML_WindowsNewline | #PB_XML_ReFormat | #PB_XML_ReIndent)
          Debug ComposeXML(1)
        Else
          Debug "Error: " + ErrorOutput$
        EndIf
        
        CloseLibrary(PBEx_MSSQL)
      EndIf
Systemvoraussetzungen:
  • Windows XP oder höher
  • .NET Framework 3.5 oder höher
  • Unicode-Aktivierung (standardmäßig ab PB 5.50)
Da das benötigte .NET Framework ab Windows 7 standardmäßig vorinstalliert ist und auf XP und Vista installiert werden kann, sollte das kein Problem sein, diese Version zu verwenden.
Es ist keine Assembly-Registrierung mit regasm.exe mit Administratorrechten notwendig wie bei COMatePLUS.

Lizenz: Diese DLL-Datei ist kostenlos und darf sowohl privat als auch kommerziell verwendet werden.
Folgende Copyright-Texte müssen mitgeliefert werden:
Copyright © 2019 RSBasic.de
Download: http://www.rsbasic.de/downloads/downloa ... _MSSQL.zip
Bild

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 :)
BildBildBildBild BildBild
Benutzeravatar
Darky
Beiträge: 208
Registriert: 18.09.2004 20:53
Wohnort: Gelsenkirchen / NRW
Kontaktdaten:

Re: PB.Ex MSSQL (Windows)

Beitrag von Darky »

Ist die DLL Etwa in .net ??? Wundert mich schon die ganze Zeit das man diese in PB verwenden kann :-| hat da jemand nähere infos für mich ?


( Sorry für den Offtopic :-D )
RSBasic
Admin
Beiträge: 7882
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB.Ex MSSQL (Windows)

Beitrag von RSBasic »

Meine DLL habe ich in C# mit .NET geschrieben, ja.
BildBildBildBild BildBild
Benutzeravatar
Rings
Beiträge: 968
Registriert: 29.08.2004 08:48

Re: PB.Ex MSSQL (Windows)

Beitrag von Rings »

RSBasic hat geschrieben:Meine DLL habe ich in C# mit .NET geschrieben, ja.
jetzt wirds interessant.
Normalweise kann man mit c# ja keine 'standard DLLs' erstellen die man direkt
aus PB heraus aufrufen könnte.

Was hast du anders gemacht das die .NET assemblies aufgerufen werden können ?

Kennst du das hier:
http://www.purebasic.fr/english/viewtop ... 13&t=70308

oder hast du das womöglich weitergeführt mit Erfolg ?

Ich bin immerhin seit über 16 Jahren in der .NET Welt zuhause.........
Rings hat geschrieben:ziert sich nich beim zitieren
Benutzeravatar
Darky
Beiträge: 208
Registriert: 18.09.2004 20:53
Wohnort: Gelsenkirchen / NRW
Kontaktdaten:

Re: PB.Ex MSSQL (Windows)

Beitrag von Darky »

Interessiert mich auch mega.... das würde alle meine Projekte die ich für Kunden betreibe zurück zu Purebasic bringen :-) Da ich die Kernkomponenten in c# Schreiben könnte.

Gibt es Tutorials oder Beispiele wie man in c#DLLs für Purebasic realisiert :bounce: :bounce: :bounce: :bounce: ?
RSBasic
Admin
Beiträge: 7882
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB.Ex MSSQL (Windows)

Beitrag von RSBasic »

Ich habe hier im Forum immer öfters gelesen, dass es angeblich nicht möglich sei, bis ich mal selber ausprobiert habe. Zuerst wollte ich einen Dreipunkt erzeugen (PB -> C++-DLL -> C#-DLL), aber dann stellte ich fest, dass es gar nicht notwendig ist. Man kann auch direkt in C# eine .NET-DLL erstellen, die man in PB nutzen kann.
Das Zauberwort lautet DLLExport. (Managed Code > Unmanaged Code)
Das wars schon. Warum ist noch niemand darauf gekommen?

Mit .NET hat man deutlich mehr Möglichkeiten und mein Ziel meiner PB.Ex-Bibliotheken ist es, Funktionen, die man wahrscheinlich in PB nie haben wird, bereitzustellen, damit man diese auch in PB nutzen kann. PB kann leider so viele Sachen nicht, die eigentlich im Jahr 2018 Standard sein sollte, wie z.B. SFTP, WMI o.ä.
Dann kann niemand (Nicht-PB-User) mehr sagen, dass PB nicht mit der Funktionalität einer anderen Sprache mithalten kann. :D

Meine DLLs werden zwar gedownloadet (Interesse besteht), aber ob es funktioniert oder ob es dem User gefällt, bekomme ich allerdings nicht. :D Ich würde mich über Feedbacks sehr freuen. Auch gern über Wünsche über zukünftige Funktionen.
BildBildBildBild BildBild
Benutzeravatar
Rings
Beiträge: 968
Registriert: 29.08.2004 08:48

Re: PB.Ex MSSQL (Windows)

Beitrag von Rings »

Danke für deine Informationen.
Rings hat geschrieben:ziert sich nich beim zitieren
Benutzeravatar
Kiffi
Beiträge: 10448
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: PB.Ex MSSQL (Windows)

Beitrag von Kiffi »

Hi Ray,

erstmal vielen Dank für Deine DLL! :allright:

Bin heute erst dazu gekommen, zu testen.

Das Ergebnis ist allerdings falsch geschachtelt. Ich bekomme z.B. sowas hier:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-16"?>

<Records>
  <Record>
    [Daten]
    <Record>
      <Record>
        [Daten]
        <Record>
          <Record>
            [Daten]
            <Record/>
          </Record>
        </Record>
      </Record>
    </Record>
  </Record>
</Records>
Grüße ... Peter
Hygge
Benutzeravatar
Mijikai
Beiträge: 705
Registriert: 25.09.2016 01:42

Re: PB.Ex MSSQL (Windows)

Beitrag von Mijikai »

RSBasic hat geschrieben:...Ich würde mich über Feedbacks sehr freuen. Auch gern über Wünsche über zukünftige Funktionen.
Wäre es möglich eine *.lib beizulegen um das einbinden zu verbessern/vereinfachen?
(Ich meine keine statischen *.lib 's !!!)

Code: Alles auswählen

Import "PB.Ex_MSSQL_x64.lib"
  ExecuteSQLQuery(ConnectionString.s, SQL.s,Timeout.i,*Output,*ErrorOutput)
EndImport

Import "PB.Ex_Speech_x64.dll"
  TextToSpeaker(Text.s,Voice.s,Speed.i,Volume.i,Asynchronous.i,*ErrorOutput)
  TextToAudioFile(Text.s,Voice.s,Speed.i,Volume.i,SaveFilePath.s,*ErrorOutput)
  SpeechRecognition(WordArray.i,WordArraySize.i,*ErrorOutput)
  WaitSpeechRecognition(*RecognizedWord)
EndImport
Ist so schöner und komfortabler :)

Testen konnte ich leider keine der Bibliotheken (hab dafür keine Anwendung).
Sehr freundlich von dir die Bibliotheken bereitzustellen - danke :allright:
Benutzeravatar
Bisonte
Beiträge: 2387
Registriert: 01.04.2007 20:18

Re: PB.Ex MSSQL (Windows)

Beitrag von Bisonte »

Mijikai hat geschrieben:
RSBasic hat geschrieben:...Ich würde mich über Feedbacks sehr freuen. Auch gern über Wünsche über zukünftige Funktionen.
Wäre es möglich eine *.lib beizulegen um das einbinden zu verbessern/vereinfachen?
(Ich meine keine statischen *.lib 's !!!)

Code: Alles auswählen

Import "PB.Ex_MSSQL_x64.lib"
  ExecuteSQLQuery(ConnectionString.s, SQL.s,Timeout.i,*Output,*ErrorOutput)
EndImport

Import "PB.Ex_Speech_x64.dll"
  TextToSpeaker(Text.s,Voice.s,Speed.i,Volume.i,Asynchronous.i,*ErrorOutput)
  TextToAudioFile(Text.s,Voice.s,Speed.i,Volume.i,SaveFilePath.s,*ErrorOutput)
  SpeechRecognition(WordArray.i,WordArraySize.i,*ErrorOutput)
  WaitSpeechRecognition(*RecognizedWord)
EndImport
Ist so schöner und komfortabler :)

Testen konnte ich leider keine der Bibliotheken (hab dafür keine Anwendung).
Sehr freundlich von dir die Bibliotheken bereitzustellen - danke :allright:
Ja, die .lib Dateien zum importieren würde ich auch begrüssen.
PureBasic 5.72 LTS (Windows x86/x64) | Windows10 Pro x64 | Z370 Extreme4 | i7 8770k | 64GB RAM | iChill GeForce RTX 2080 Super | HAF XF Evo​​
Antworten