Español
SDK-Helfer/ Tools

SQLite Rückgabe en slExec, X4, con Testprogamm (auch para Einsteiger)

 

Herby
¡Hola a todos y besonders a Roland.

Anbei una Demoprogramm para el Rückgabewerte en "slExec", el gleichzeitig como Testprogramm para el Grundlagen de SQLite dient.
Lo va esta a Rückgabewerte en una slExec - Befehl. Hier se sólo en Select el número el gefunden Datensätze zurückgegeben sonst siempre 0 (en Fehlern Abbruch)
¿Es hier posible auch en allen otro Befehlen (Insert,Delete,Actualización,Count) una Valor a liefern oder vielleich hay el ya y yo weiß no ?

es en SQLite :
<Die Anzahl el de SQLExec bearbeiteten Datensätze es el Ergebnis el Función y se auch en &SQLCount zurückgeliefert. Trat una Fehler en, se -1 zurückgegeben.>
Dies schein aber sólo en ODBC-Schnittstelle a trabajo (Yo pero no).

Dies wäre optimal en el Fehlern -1 kommt y luego auch $SQLError gesetzt se, sonst eben el número.
Dadurch könnten entonces fehlerhafte Befehle abgefangen voluntad sin Programmabbruch.
Besonders interessant es el en una TRIGGER y RAISE wo bestimme Ereignisse abgefragt voluntad puede y luego auch Meldungen producido voluntad (siehe Programa beu DB_Open).
Das Ejemplo con leeren Feld podría uno auch en Profano lösen, pero son como determinado todavía mehr Möglichkeiten. Als Anlage Bild el (Fehler)Meldung de SQL "Name es leer"


' Testprogramm para SQLite, XProfan X4, Made by Herby
Declarar grid&, g&, Text&, Ende&, ins&, leer&, Del&, such&, DB&
Declarar zwi$, zwi%, erg%, Ende%
' Datenbank erzeugen, si no disponible, y Verbindung herstellen ************

Proc DB_Open

    ifnot fileexists("testdb.db")

        db& = db("slCreate", "testdb.db")
        Db("slExec", DB&, "CREATE TABLE Daten (Id INTEGER PRIMARY KEY AUTOINCREMENT, Name TEXT, Datum REAL)",1)
        db("slExec", DB&, "INSERT INTO Daten (Id, Name, Datum) VALUES (1, 'Satz 1',JULIANDAY('NOW','LOCALTIME'))", 1)
        ' Trigger redactar si Datensatz con leeren Namen eingefügt se, va auch con Delete, Actualización. Oder Logdatei redactar en Los cambios ...
        Db("slExec", DB&, "CREATE TRIGGER Name_leer BEFORE INSERT ON Daten BEGIN SELECT CASE WHEN NEW.Name = '' THEN RAISE ( ABORT, 'Name es leer') END; END;",1)
        MessageBox("Datenbank neu erstellt","Hinweis",64)

    más

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

    EndIf

ENDPROC

' todos Sätze de Datenbank lesen y Grid Mostrar ******************************

Proc DB_Read

    ClearList 0
    ClearList grid&, g&
    erg% = Db("slExec", DB&, "SELECT Id, Name, DATE(Datum), TIME(Datum) FROM Daten",g&)
    Printx "Lesen : ",erg%
    Move("HandleToList",g&)' en Grid voluntad sólo Datensätze eingetragen sin Überschriften/Spaltenbeiten, por lo tanto encima Grid !
    Move("ListToHandle",grid&)' en GridBox voluntad el Überschriften y Spaltenbreite de SQL gesetzt

ENDPROC

' Texto en ListBox ausgeben y en letzte Línea positionieren (Terminal) **********

Proc Printx

    Parámetros TEXT$,Nr%
    AddStrings(Text&,TEXT$ + Str$(Nr%))
    Seleccione String(Text&,GetCount(Text&)-1,"")

ENDPROC

cls
db("slUseDLL", "sqlite3.dll")' DLL inicializar
DB_Open
g& = create("Grid",4,0)' hier voluntad Daten sin Kopfzeile eingetragen
Grid& = Crear("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&  = Crear("Button",%hwnd,"Del",200,360,60,25)
Ins&  = Crear("Button",%hwnd,"Ins",300,360,60,25)
Leer& = Crear("Button",%hwnd,"Leer",400,360,60,25)
Ende& = Crear("Button",%hwnd,"Ende",500,360,60,25)
DB_Read
Selección aleatoria

Sinestar encargado Ende%

    WaitInput

    If Clicked(Ende&)

        Ende% = 1

    ElseIf Clicked(Ins&)' Datensatz einfügen

        ZWI$ = "Test " + Str$(Rnd(1000)+1)
        erg% = Db("slExec", DB&, "INSERT INTO Daten (Name,Datum) VALUES (:zwi$,JULIANDAY('NOW','LOCALTIME'))",1)
        Printx "Ins : ",erg%
        DB_Read
        Seleccione String(grid&,GetCount(grid&)-1,"")

    ElseIf Clicked(Leer&)' Datensatz einfügen con leeren Namen, bricht con SQL-Error [19] de, evtl erg% conjunto ($sqlerror/&sqlcount ?!?)

        erg% = Db("slExec", DB&, "INSERT INTO Daten (Name,Datum) VALUES ('',JULIANDAY('NOW','LOCALTIME'))",1)
        Printx "Ins leer : ",erg%
        DB_Read

    ElseIf Clicked(Del&)' markierten Datensatz löschen

        ZWI% = GetCurSel(grid&)

        If ZWI% > -1

            ZWI% = Val(GetText $(grid&,ZWI%,0))' Id de selectierten Datensatz lesen
            erg% = Db("slExec", DB&, "DELETE FROM Daten WHERE Id = :zwi%",1)
            Printx "Del : ",erg%
            DB_Read
            Seleccione String(grid&,GetCount(grid&)-1,"")

        EndIf

    EndIf

EndWhile

DB("slDone", DB&)' Datenbank schließen
End

Grüße de München vom Herby.

24 kB
Hochgeladen:24.07.2019
Ladeanzahl92
Descargar
 
XProfan X4
Win 10, XProfan X2/X3 jetzt X4
24.07.2019  
 



Posesiones el Thema veces después de SDK-Helfer/ Tools movido.
 
24.09.2020  
 




funkheld
Hm....qué se Roland con el Programa?

Also no para el Gemeine Volk de Deutschland pero sólo para el Bayern y Roland?

Gruss
 
08.01.2022  
 



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



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

3.303 Views

Untitledvor 0 min.
Matzbub03.02.2024
Thomas Zielinski28.06.2023
Paul Glatz22.06.2023
E.T.12.06.2023
Más...

Themeninformationen

Dieses Thema ha 4 subscriber:

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


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie