Français
SDK-Helfer/ Tools

SQLite Rückgabe chez slExec, X4, avec Testprogamm (aussi pour Einsteiger)

 

Herby
allô à alle et besonders à Roland.

Anbei un Demoprogramm pour qui Rückgabewerte chez "slExec", cela gleichzeitig comme Testprogramm pour qui Grundlagen de SQLite dient.
und dir dabei à Rückgabewerte chez einem slExec - Befehl. ici wird seulement chez Select le nombre qui trouvé Datensätze retour sonst toujours 0 (chez Fehlern Abbruch)
Ist es ici possible aussi chez allen anderen Befehlen (Insert,Delete,Update,Count) une Wert trop liefern ou bien vielleich gibt es cela déjà et je sais es pas ?

steht chez SQLite :
<Die Nombre de de SQLExec bearbeiteten Datensätze ist cela Ergebnis qui Funktion et wird aussi dans &SQLCount zurückgeliefert. Trat un faute sur, wird -1 retour.>
ca billet mais seulement sur qui ODBC-Schnittstelle trop marcher (habe je mais pas).

ca wäre optimal cela chez Fehlern -1 venez et ensuite aussi $SQLError gesetzt wird, sonst plan le nombre.
Dadurch könnten ensuite fehlerhafte Befehle abgefangen volonté sans Programmabbruch.
Besonders intéressant ist cela chez einem TRIGGER et RAISE wohin bestimme Ereignisse abgefragt volonté peut et ensuite aussi Meldungen erzeugt volonté (siehe Programme beu DB_Open).
cela Beispiel avec vider champ pourrait on aussi dans Profan lösen, mais il y a là bestimmt encore plus Opportunités. comme Anlage Bild qui (faute)annonce de SQL "Name ist leer"


' Testprogramm pour SQLite, XProfan X4, asticot by Herby
Déclarer grid&, g&, Text&, Ende&, ins&, leer&, Del&, such&, DB&
Déclarer zwi$, zwi%, erg%, Ende%
' banque de données erzeugen, si pas vorhanden, et liaison herstellen ************

Proc DB_Open

    ifnot fileexists("testdb.db")

        db& = db("slCreate", "testdb.db")
        Db("slExec", DB&, "CREATE TABLE données (Id INTEGER PRIMARY KEY AUTOINCREMENT, nom TEXT, date REAL)",1)
        db("slExec", DB&, "INSERT INTO données (Id, nom, date) VALUES (1, 'phrase 1',JULIANDAY('NOW','LOCALTIME'))", 1)
        ' Trigger erstellen si Datensatz avec vider Namen eingefügt wird, allez aussi avec Delete, Update. ou bien Logdatei erstellen chez Changements ...
        Db("slExec", DB&, "CREATE TRIGGER Name_leer BEFORE INSERT ON données BEGIN SELECT CASE WHEN NEW.nom = '' THEN RAISE ( ABORT, 'nom ist vide') END; END;",1)
        MessageBox("Datenbank récente erstellt","Hinweis",64)

    d'autre

        db& = db("slInit", "testdb.db")

    EndIf

ENDPROC

' alle Sätze aus banque de données lesen et dans Grid Montrer ******************************

Proc DB_Read

    ClearList 0
    ClearList grid&, g&
    erg% = Db("slExec", DB&, "SELECT Id, nom, DATE(date), TIME(date) FROM Daten",g&)
    Printx "Lesen : ",erg%
    Move("HandleToList",g&)' dans Grid volonté seulement Datensätze eingetragen sans Überschriften/Spaltenbeiten, tout autor sur Grid !
    Move("ListToHandle",grid&)' dans GridBox volonté qui Überschriften et Spaltenbreite de SQL gesetzt

ENDPROC

' Text dans ListBox ausgeben et sur dernier la ligne positionieren (Terminal) **********

Proc Printx

    Paramètres TEXT$,Nr%
    AddStrings(Text&,TEXT$ + Str$(Nr%))
    Sélectionnez String(Text&,GetCount(Text&)-1,»)

ENDPROC

cls
db("slUseDLL", "sqlite3.dll")' DLL initialisieren
DB_Open
g& = create("Grid",4,0)' ici volonté données sans Kopfzeile eingetragen
Grid& = Créer("gridbox",%hwnd,"ID;0;30;Name;0;200;Datum;0;70;Zeit;0;70",0,200,20,400,200)
Text& = create("Listbox",%hwnd,0,20,20,150,200)
Del&  = Créer("Button",%hwnd,"Del",200,360,60,25)
Ins&  = Créer("Button",%hwnd,"Ins",300,360,60,25)
Leer& = Créer("Button",%hwnd,"Leer",400,360,60,25)
Ende& = Créer("Button",%hwnd,"Ende",500,360,60,25)
DB_Read
Randomiser

WhileNot Ende%

    WaitInput

    Si Clicked(Ende&)

        Ende% = 1

    ElseIf Clicked(Ins&)' Datensatz insérer

        ZWI$ = "Test " + Str$(Tour(1000)+1)
        erg% = Db("slExec", DB&, "INSERT INTO données (nom,date) VALUES (:zwi$,JULIANDAY('NOW','LOCALTIME'))",1)
        Printx "Ins : ",erg%
        DB_Read
        Sélectionnez String(grid&,GetCount(grid&)-1,»)

    ElseIf Clicked(Leer&)' Datensatz insérer avec vider Namen, bricht avec SQL-Error [19] ab, peut-être erg% mettons ($sqlerror/&sqlcount ?!?)

        erg% = Db("slExec", DB&, "INSERT INTO données (nom,date) VALUES ('',JULIANDAY('NOW','LOCALTIME'))",1)
        Printx "Ins vide : ",erg%
        DB_Read

    ElseIf Clicked(Del&)' markierten Datensatz effacer

        ZWI% = GetCurSel(grid&)

        Si ZWI% > -1

            ZWI% = Val(GetText $(grid&,ZWI%,0))' Id aus selectierten Datensatz lesen
            erg% = Db("slExec", DB&, "DELETE FROM données WHERE Id = :zwi%",1)
            Printx "Del : ",erg%
            DB_Read
            Sélectionnez String(grid&,GetCount(grid&)-1,»)

        EndIf

    EndIf

Endwhile

DB("slDone", DB&)' banque de données schließen
Fin

Grüße aus München vom Herby.

24 kB
Hochgeladen:24.07.2019
Downloadcounter92
Download
 
XProfan X4
Win 10, XProfan X2/X3 jetzt X4
24.07.2019  
 



Habe cela Thema la fois pour SDK-Helfer/ Tools déménagé.
 
24.09.2020  
 




funkheld
Hm....quoi soll Roland avec dem Programme?

alors pas pour cela Gemeine Volk aus l'allemagne mais seulement pour qui Bayern et Roland?

Gruss
 
08.01.2022  
 



Unterthema: IN-MEMORY - DB  [...]  erzeugt.
 
12.04.2023  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

3.306 Views

Untitledvor 0 min.
Matzbub03.02.2024
Thomas Zielinski28.06.2023
Paul Glatz22.06.2023
E.T.12.06.2023
plus...

Themeninformationen

cet Thema hat 4 participant:

H.Brill (1x)
funkheld (1x)
iF (1x)
Herby (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie