Hirdetés

Új hozzászólás Aktív témák

  • Gregorius

    őstag

    Nagy fába vágtam a fejszémet, nevezetesen Access program mögött ki lesz cserélve az adatbázis JET mdb-ről SQL2005-re (egyúttal a program költözik mdb-ből adp-be). Táblák, view-k migrálása, csatolás helyett connection string, etc... rendben le is megy, viszont igen komoly probléma jött szembe.
    Ami a régiben így működött:

    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset(''EzaTábla'')
    rs.FindFirst ...
    rs.Edit
    ...
    rs.Update
    rs.Close

    azt SQL alatt egyszerűen nem sikerül életre kelteni. Eddig ennyire jutottam:

    Dim rs As New ADODB.Recordset
    rs.Open ''EzaTábla'', CurrentProject.Connection
    rs.MoveFirst
    MsgBox rs!Mező
    ...
    rs.Close

    Nos az első probléma rögtön ott van, hogy ez a szerencsétlen Access az rs.Open-re az egész táblát átpumpálja a csövön az adatbázisból ahelyett, hogy csak az érintett sorokkal tenné meg (amire rááll a kurzor). Ez még talán pár hetes kódfirkálással megoldható az rs.Open-ekbe rakott SQL WHERE-rel.
    A másik gond ennél már sokkal prózaibb: az így megnyitott Recordset nem szerkeszthető, tehát az .Edit, .AddNew, stb nem működik. Az eddigi legjobb megoldás, amit találtam az az, hogy direktbe SQL parancsokkal (SELECT, INSERT, UPDATE) beszélgetnék az adatbázissal, viszont ez olyan szinten felforgatná a kódot, hogy egyszerűbb lenne az egész programot újraírni.
    Aki bármi értelmeset tud javasolni, plíz ne tartsa magában :O

    [Szerkesztve]

Új hozzászólás Aktív témák