"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

c++ builder: zugriff auf ms access

atrox 13.07.2004 - 20:55 569 2
Posts

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
ich möchte mit einem kleinen shell-tool daten aus einer access-datei holen, allerdings finde ich kein gutes beispiel das mir das ohne gui-elemente ermöglicht. meine bisherigen zwei versuche liefern immer 0 ergebnisse zurück :(

Code:
int main(int argc, char* argv[])
{
        TDatabase *conn;
        hDBICur *cur;
        conn=new TDatabase(Screen);

        conn->DatabaseName="test";
        conn->DriverName="MSACCESS";       // MSACCESS
        conn->Params->Append("DATABASE NAME=C:\\atrox\\index.mdb");
        conn->Params->Append("PATH=C:\\atrox");
        conn->Params->Append("TRACE MODE=0");
        conn->Params->Append("LANGDRIVER=Access General");
        conn->Params->Append("SQLPASSTHRU MODE=NOT SHARED"); 
        conn->ReadOnly=True;
        conn->LoginPrompt=False;


//        conn->Connected=True; // alternative
        conn->Open();

        if (conn->Connected) puts("connected."); // das haut hin!

        int i=conn->Execute("select key from items;"); // sollte tausende zurückliefern

        printf("test execute=%d datasetcount=%d\n",i,conn->DataSetCount);
        for (int i = 0; i < conn->DataSetCount; i++) {
                char t[1000];
                conn->DataSets[i]->GetFieldData(0,t);
                puts(t);
        }

        getchar(); // wait for input
        return 0;
}
alternativ hab ich auch als zweiten teil diesen code versucht, der auch nicht hinhaut
Code:
        TQuery *query=new TQuery(NULL);
        query->DatabaseName="test";
        query->SQL->Append("select * from items");
        query->Prepare();
        query->ExecSQL();
        printf("query fc=%d\n",query->RowsAffected);
Bearbeitet von atrox am 13.07.2004, 21:01

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Du solltest wohl ein Open() machen, kein ExecSQL, wenn du selectest.

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
ahh.. und ausserdem darf man sich auf RowsAffected nicht verlassen ! mit query->Eof und query->Next hauts jetzt hin.
thx.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz