Announcement

Collapse
No announcement yet.

DB läuft auf Server, Zugriff aus Visual Basic geht teilweise. Brauche ich einen Client-Treiber? Wie?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DB läuft auf Server, Zugriff aus Visual Basic geht teilweise. Brauche ich einen Client-Treiber? Wie?

    Hallo,

    ich bin Firebird-Neuling, habe bisher alles auf MS-Access gemacht und wollte endlich ne echte DB :-)

    Nun das Problem. Ich habe auf einem Rechner die Datenbank. Auf diesem ist auch der ODBC-Treiber dafür eingerichtet.

    Ich habe ein Programm selbst gemacht, welches auf die Datenbank zugreifen soll. Das funktioniert auch lesend, ich kann sogar schreibend SQL-Befehle (z.B. update...) abgeschicken, aber aus Visual Basic kann ich den Datensatz nicht editieren.

    Für alle Visual Basic-Experten hier der Code:
    <br><br><i>

    Set wrk = CreateWorkspace("mhcwrk", "root", "xxx", dbUseODBC)<br>
    Set con = wrk.OpenConnection("mhccon", dbDriverNoPrompt, False, "ODBC;UID=root;PWD=xxx;ReadOnly=False;DSN=testdb") <br>
    Set rs = con.OpenRecordset("Select * from tabelle where feld1 = '1000' ", dbOpenDynamic)<br>
    rs.Edit<br>
    rs("Feld2") = "123"<br>
    rs.Update<br>
    rs.Close<br><br></i>

    Beim Edit steigt er leider aus und sagt: "Aktualisieren nicht möglich. Datenbank oder Objekt ist schreibgeschützt."

    Wie gesagt, schreiben kann ich z.B. so:<br>
    con.execute "Update tabelle set feld2 = '123' where feld1 = '1000' "<br><br>

    Merkwürdigerweise kann ich auch mit MS-Access die Testtabelle per odbc einbinden und beliebig ändern.

    Mein Programm verweist auf Dao 3.51. Vielleicht brauche ich noch ein Client-Treiber oder sowas? Kann mir jemand helfen?

    Besten Dank vorab...
    Schöne Grüße aus dem verschneiten Schongau

    Gruß
    Markus

  • #2
    Hallo Markus,
    <br><br>
    ich kann Dir hier nicht wirklich weiterhelfen, da ich kein Visual Basic verwende. Aber, solltest Du den IBPhoenix Firebird ODBC-Treiber verwenden, dann würde ich vorschlagen, dass Du Dein Problem direkt in der firebird-odbc-devel Liste postest.
    <br><br>
    Thoma
    Thomas Steinmaurer

    Firebird Foundation Committee Member
    Upscene Productions - Database Tools for Developers
    Mein Blog

    Comment


    • #3
      Hallo Markus,

      wenn Du beim .OpenRecordSet keinen Lock-Parameter übergibts, wird der RS per Default als ReadOnly geöffnet, schreiben ist dann natürlich nicht möglich.
      <BR>
      Es müsste also heissen:<BR>
      <I>
      Set rs = con.OpenRecordset("Select * from tabelle where feld1 = '1000' ", dbOpenDynamic, , <B>dbOptimistic</B>)
      </I> <BR>

      Gruss, Olaf
      Olaf Helper

      <Blog> <Xing>
      * cogito ergo sum * errare humanum est * quote erat demonstrandum *
      Wenn ich denke, ist das ein Fehler und das beweise ich täglich

      Comment

      Working...
      X