Datensatz-Auswahl

  • VB6

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von LaMa5.

    Hi,

    der SQL-String lautet:

    SELECT * FROM tabellenname WHERE feldname=wert;

    bye ...

    LaMa5.

    P.S. Tip: lade dir die Doku zum mySQL Server herunter. Damit kann man wunderbar SQL lernen! ;)
    Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
    (Autor: Earl Wilson, amerik. Schriftsteller)

    https://www.serviceteam-md.de
    THX jetzt habe ich das so gemacht jetzt erhalte ich bei folgendem Code nachfolgende Fehlermeldung:

    <pre>

    rcs.Open "SELECT * FROM musik_storer WHERE rcs!Artist=" & ListView1.SelectedItem

    </pre>

    ---Fehler---
    Run-time error '-2147217900 (80040e14)':

    [MySQL][ODBC 2.51 Driver][mysqld-4.0.17-nt]You have an error in your SQL syntax. Check the manual that correspondends to your MySQL server version for the right syntax to use near !Artist=Dire Straits' as line 1
    ---Fehler ende---

    Wo liegt der Fehler???
    Hi,

    Hochkommas nicht vergessen!!

    rcs.Open "SELECT * FROM musik_storer WHERE Artist='" & ListView1.SelectedItem & "'"


    Edit:
    Sorry für die kurze Antwort, war gestern abend in Eile ;)

    Alle Zeichenketten müssen im SQL-String in Hochkommas stehen! Auch dann wenn du die Werte
    per Variable übergibst. Wenn du ein Zahlenfeld (decimal) ansprichst ist das nicht notwendig.

    Ausserdem musst du NUR die Feldbezeichnung bzw. den Tabellennamen und die Feldbezeichnung als
    Kriterium angeben (z.B. artist od. musik_storer.artist) nicht aber die Recordset Variable (rcs).


    bye ...

    LaMa5.
    Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
    (Autor: Earl Wilson, amerik. Schriftsteller)

    https://www.serviceteam-md.de

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „LaMa5“ ()

    das war schon ok! War sachlich und treffend.

    habe noch eine Frage:

    Ich will jetzt ein paar sachen in die db schreiben.

    Klappt auch, wenn ich wenige Variablen nehme.
    Der folge code funzt nicht. warum und gibt es vielleicht eine bessere moeglichkeit den zu schreiben?

    <pre>

    rcs.Open "INSERT INTO musik_storer (Album_Name, Artist, Song1, Song2, Song3, Song4, Song5, Song6, Song7, Song8, Song9, Song10, Song11, Song12, Song13, Song14, Song15, Song16, Song17, Song18, Song19, Song20,
    Song21, Song22, Song23, Song24, Song25) VALUES ('" & txtAlbum.Text & "', '" & txtArtist.Text & "', '" & lstS.List(0) & "', '" & lstS.List(1) & "', '" & lstS.List(2) & "', '" & lstS.List(3) & "', '" & lstS.List(4)
    & "', '" & lstS.List(5) & "', '" & lstS.List(6) & "', '" & lstS.List(7) & "', '" & lstS.List(8) & "', '" & lstS.List(9) & "', '" & lstS.List(10) & "', '" & lstS.List(11) & "', '" & lstS.List(12) & "', '" & lstS.List(13)
    & "', '" & lstS.List(14) & "', '" & lstS.List(15) & "', '" & lstS.List(16) & "', '" & lstS.List(17) & "', '" & lstS.List(18) & "', '" & lstS.List(19) & "', '" & lstS.List(20) & "', '" & lstS.List(21) & "', '" & lstS.List(22)
    & "', '" & lstS.List(23) & "', '" & lstS.List(24) & "')"

    </pre>

    Is ein bisschen unuebersichtlich geworden sry.

    Das soll alles eine Zeile sein!!!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Lost-Ha[n]f-PHP“ ()

    Hi,

    Es gibt zwei Möglichkeiten.

    1.) Wie du es geamacht hast. Ich habe es nur etwas übersichtlicher gemacht und ...
    a) statt INSERt INTO, verwende ich immer REPLACE
    b) die Angabe der Spalten ist nur dann notwendig, wenn du nur bestimmte Zellen beschreiben willst. Ich
    gehe davon aus, dass alle Felder in deiner Auflistung auch wirklich alle sind und spare damit ein Stückchen.
    Sollten es nicht alle sein, muss die Auflistung wieder mit rein.
    So jetzt das Bsp.

    <pre>
    rcs.Open "REPLACE musik_storer VALUES (" & _
    "'" & txtAlbum.Text & _
    "','" & txtArtist.Text & _
    "','" & lstS.List(0) & _
    "','" & lstS.List(1) & _
    "','" & lstS.List(2) & _
    "','" & lstS.List(3) & _
    "','" & lstS.List(4) & _
    "','" & lstS.List(5) & _
    "','" & lstS.List(6) & _
    "','" & lstS.List(7) & _
    "','" & lstS.List(8) & _
    "','" & lstS.List(9) & _
    "','" & lstS.List(10) & _
    "','" & lstS.List(11) & _
    "','" & lstS.List(12) & _
    "','" & lstS.List(13) & _
    "','" & lstS.List(14) & _
    "','" & lstS.List(15) & _
    "','" & lstS.List(16) & _
    "','" & lstS.List(17) & _
    "','" & lstS.List(18) & _
    "','" & lstS.List(19) & _
    "','" & lstS.List(20) & _
    "','" & lstS.List(21) & _
    "','" & lstS.List(22) & _
    "','" & lstS.List(23) & _
    "','" & lstS.List(24) & "')"
    </pre>

    2.) So würde ich es machen:
    a) Du benötigst noch 2 Variablen (i as Long (od. Integer) und SQLstr as String)
    b) Da der SQL-String "nur" eine Variable ist baue ich mir den String in solchen Fällen so zusammen:

    <pre>
    SQLstr="REPLACE musik_storer VALUES('" & txtAlbum & "','" & txtArtist "'"
    For i=0 To 24
    SQLstr=SQLstr & ",'" & lstS.List(i) & "'"
    Next i
    SQLstr = SQLstr & ")"
    </pre>


    bye ...

    LaMa5.
    Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
    (Autor: Earl Wilson, amerik. Schriftsteller)

    https://www.serviceteam-md.de