Deutsch
Wünsche und Anregungen

Vorschläge für künftige Versionen

SQLExec /fbSQLExec

 

H.Brill
Hallo Roland,
Wenn man bei SQLExec als letzten Parameter ein
Handle von einer Gridbox angibt, so werden ja die
Ergebnisse bei SELECT dort hinein geschrieben.

Was nun unschön ist :
Die Spaltenbreiten bei numerischen Feldern werden
stark verkleinert. Im Moment behelfe ich mir mit

LVM_SetColumnWidth

und vergrößere die Spalten auf den Ursprung wieder.
Kannst du das so einstellen, daß auch bei den numerischen
Feldern die Ursprungsgröße der Felder von der Gridbox
übernommen werden ?

Anbei mal ein kleiner Testcode (hier mit Firebird), der
das veranschaulicht :
KompilierenMarkierenSeparieren
 $H commctrl.ph
Declare Handle fbdll, db1, stw, Gridbox1, Gridbox2, btn1, btn2, btn3, edit1
Declare Int ende
Declare SQL$
Declare Memory L
Dim L, 8
Long L, 0 = 440, -1
Declare String dbPfad
dbPfad = $ProgDir + "Daten\Test.fdb"
Window 650, 600
Gridbox1 = @Create("Gridbox", %HWnd, "Nummer;0;80;Name;0;240;Menge;1;120;Preis;2;100", 0, 10, 80, 510, 200)
Gridbox2 = @Create("Gridbox", %HWnd, "Nummer;0;80;Name;0;240;Menge;1;120;Preis;2;100", 0, 10, 300,510, 200)
btn1     = @Create("Button",  %HWnd, "Suche", 10, 10, 60, 25)
edit1    = @Create("Edit",    %HWnd, "Select * From Artikel Where ",      80, 10, 500,25)
btn2     = @Create("Button",  %HWnd, "Lesen", 10,40, 60, 25)
btn3     = @Create("Button",  %HWnd, "Ende",  110,40,60, 25)
stw      = @Create("StatusWindow", %HWnd, "", 2, L)
fbdll = db("fbUseDll", "fbembed.dll")

IfNot FileExists(dbPfad)

    db1 = db("fbCreate", "SYSDBA", "masterkey", dbPfad)
    db("fbSQLExec", db1, "CREATE TABLE ARTIKEL (Nummer NUMERIC(5,0), Name CHAR(30), Menge NUMERIC(4,0), Preis NUMERIC(4,2))", 1)
    SetText stw, 0, "Datenbank : " + dbPfad + " wurde angelegt !"
    FuelleDB()

Else

    db1 = db("fbInit", "SYSDBA", "masterkey", dbPfad)
    SetText stw, 0, "Datenbank : " + dbPfad + " ist geöffnet !"

EndIf

ende = 0

WhileNot ende

    WaitInput

    If @Clicked(btn3)

        ende = 1

    ElseIf @Clicked(btn2)

        LeseDatei()

    ElseIf @Clicked(btn1)

        ' SQL Statement
        SQL$ = GetText$(edit1)
        @db("fbSQLExec", db1, SQL$, Gridbox2)
        SendMessage(Gridbox2, ~LVM_SETCOLUMNWIDTH, 2, 120)' Breite 3 + 4 Spalte wieder herstellen
        SendMessage(Gridbox2, ~LVM_SETCOLUMNWIDTH, 3, 100)

    EndIf

    Case %Key = 2 : ende = 1

EndWhile

db("fbDone", db1)
FreeDll fbdll
Dispose L

Proc FuelleDB

    Declare String SQLS[]
    SQLS[0] = "INSERT INTO Artikel (Nummer,Name,Menge,Preis) VALUES (100,'Tafel-Bananen',100,1.50)"
    SQLS[1] = "INSERT INTO Artikel (Nummer,Name,Menge,Preis) VALUES (200,'Tafel-Birnen',1000,0.50)"
    SQLS[2] = "INSERT INTO Artikel (Nummer,Name,Menge,Preis) VALUES (300,'Tafel-Äpfel',1500,0.30)"
    SQLS[3] = "INSERT INTO Artikel (Nummer,Name,Menge,Preis) VALUES (400,'Tafel-Kirschen',10000,1.75)"
    SQLS[4] = "INSERT INTO Artikel (Nummer,Name,Menge,Preis) VALUES (500,'Johannisbeeren',80,3.50)"
    SQLS[5] = "INSERT INTO Artikel (Nummer,Name,Menge,Preis) VALUES (600,'Erdbeeren',200,0.65)"
    SQLS[6] = "INSERT INTO Artikel (Nummer,Name,Menge,Preis) VALUES (700,'Brombeeren',140,1.10)"
    SQLS[7] = "INSERT INTO Artikel (Nummer,Name,Menge,Preis) VALUES (800,'Most-Äpfel',100,0.80)"
    SQLS[8] = "INSERT INTO Artikel (Nummer,Name,Menge,Preis) VALUES (900,'Most-Birnen',70,0.45)"
    SQLS[9] = "INSERT INTO Artikel (Nummer,Name,Menge,Preis) VALUES (1000,'Most-Kirschen',500,0.50)"
    SQLS[10] = "INSERT INTO Artikel (Nummer,Name,Menge,Preis) VALUES (1100,'Ess-Bananen',100,1.50)"

    WhileLoop 0, 10

        db("fbSQLExec", db1, SQLS[&LOOP], 1)

    EndWhile

    SetText stw, 0, "11 Datensätze geschrieben !"

EndProc

Proc LeseDatei

    ClearList Gridbox1
    @db("fbSQLExec", db1, "SELECT * FROM Artikel", Gridbox1)
    SendMessage(Gridbox1, ~LVM_SETCOLUMNWIDTH, 2, 120)' Breite 3 + 4 Spalte wieder herstellen
    SendMessage(Gridbox1, ~LVM_SETCOLUMNWIDTH, 3, 100)

EndProc

End

Lasse in der Proc LeseDatei die 2 SendMessage-Befehle
mal weg. Dann siehst du, was ich meine.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
21.01.2015  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.536 Betrachtungen

Unbenanntvor 0 min.
H.Brill02.05.2023
Christof Neuß06.05.2021
rquindt04.01.2021
Ju11.02.2017
Mehr...

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

H.Brill (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie