URL: https://www.overclockers.at/coding-stuff/c_syntax_feld_aus_einer_accessdatenbank_tabelle_au_207955/page_1 - zur Vollversion wechseln!
Servus,
meine Ausgangssituation:
Ich schreibe gerade ein Programm (im Borland C++ Builder 5) das seine Daten in einer Accessdatenbank ablegt (auch noch nicht syntaktisch gelöst). Nun möchte ich die Datenbank (Feld aus einer Tabelle)auslesen.
Auf dem Formular ist eine Datasource vom Typ TDatasource und eine Tabelle vom Typ TTable. Verbindung ist über ODCB gelöst und funktioniert auch. Daten werden in korrekt in eine DBGrid angezeigt.
Nun ist mein Problem ich benkomme es von der Syntax nicht hin ein Feld aus der Datenbank auszulesen. Hier mal der Code den ich für den Login gemacht habe:
In Zeile 17 versuche ich das Feld aus der Datenbank in einen AnsiString zu packen, bis jetzt leider ohne Erfolg. Habe versucht die Daten über die TTable Komponente zu bekommen oder auch über das DBGrid KOmponente. Hat aber auch nicht gefruchtet. Danke für die Hilfe
TriGGeR
Code://--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "Uebersicht.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TFrmLogin *FrmLogin; void Login (int Abteilung) { FrmLogin->TbPasswort->Active=true; int x=0; x=Abteilung+1; AnsiString PWDB= Hier versuche ich das Feld auszulesen FrmLogin->Label1->Caption=PWDB; if (PWDB!=FrmLogin->edtPasswort->Text) MessageBox(0,"Sie haben das falsche Passwort eingegeben!","Fehler",MB_OK); else { FrmLogin->Visible=false; FrmUebersicht->Visible=true; FrmLogin->TbPasswort->Active=false; } } //--------------------------------------------------------------------------- __fastcall TFrmLogin::TFrmLogin(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TFrmLogin::Beenden2Click(TObject *Sender) { FrmLogin->Close(); } //--------------------------------------------------------------------------- void __fastcall TFrmLogin::Button1Click(TObject *Sender) { int Abteilung=0; Abteilung=FrmLogin->cbAbteilung->ItemIndex; Login(Abteilung); } //---------------------------------------------------------------------------
Ich kenn mich zwar überhaupt nicht aus, aber kannst du bitte mal den Code mit ordentlichen Einrückungen posten? Außerdem schaut er unvollständig aus, es sind ja nichtmal Spuren von irgendeinem Datenbankzugriff zu sehen.
Code:#include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "Uebersicht.h" #pragma package(smart_init) #pragma resource "*.dfm" TFrmLogin *FrmLogin; void Login (int Abteilung) { FrmLogin->TbPasswort->Active=true; int x=0; x=Abteilung+1; AnsiString PWDB= Hier versuche ich das Feld auszulesen FrmLogin->Label1->Caption=PWDB; if (PWDB!=FrmLogin->edtPasswort->Text) MessageBox(0,"Sie haben das falsche Passwort eingegeben!","Fehler",MB_OK); else { FrmLogin->Visible=false; FrmUebersicht->Visible=true; FrmLogin->TbPasswort->Active=false; } } __fastcall TFrmLogin::TFrmLogin(TComponent* Owner) : TForm(Owner) { } void __fastcall TFrmLogin::Beenden2Click(TObject *Sender) { FrmLogin->Close(); } void __fastcall TFrmLogin::Button1Click(TObject *Sender) { int Abteilung=0; Abteilung=FrmLogin->cbAbteilung->ItemIndex; Login(Abteilung); }
Das mit dem "Hier versuche ich auf die Datenbank..." habe ich nur geschrieben damit ihr wisst wo es stehen soll.
Datentyp ist ja erstmal egal, der kann noch angepasst werden.
Da das Feld aber vom Typ Text ist wird ein AnsiString zurückgegeben
KA zu den Pragmas das hat der Builder selbst eeingefügt. Die Verbindung zur Datenbank steht über ODBC-Treiber. Ich will eigendlich nur wissen wie ich aus einem DBGrid oder einer Table Komponente ein Datenfeld aus der Datenbank abfragen kann. Ich hoffe das ist jetzt verständlicher
Zitat von XT-TriGGeRIch will eigendlich nur wissen wie ich aus einem DBGrid oder einer Table Komponente ein Datenfeld aus der Datenbank abfragen kann. Ich hoffe das ist jetzt verständlicher
Zitat von XT-TriGGeRIn Zeile 17 versuche ich das Feld aus der Datenbank in einen AnsiString zu packen, bis jetzt leider ohne Erfolg. Habe versucht die Daten über die TTable Komponente zu bekommen oder auch über das DBGrid KOmponente. Hat aber auch nicht gefruchtet.
es ist offensichtlich dass ihm der code fehlt und er ihn von leuten hier "vorgeschlagen" bekommen will..
Code:AnsiString PWDB= DBGrid1->....
oderCode:AnsiString PWDB= DBGrid1->Fields->...
versucht habe.Code:AnsiString PWDB= DBGrid1->Columns->...
Bitte poste doch irgendeinen Code mit Fehlermeldungen, mit irgendwelchen pointern auf irgendwelche Objekte die nirgendwo definiert werden kommen wir nicht weiter.
Ist DBGrid->Columns->bla ueberhaupt ein AnsiString? Wenn nicht musst du das irgendwie casten oder umcodieren.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025