struct und Query
-
Hallo,
mal wieder ne Frage vom Noob
und zwar versuch ich die letzten 2h die daten von einer TQuery - Abfrage in ein struct reinzuschreiben hab mir mal ein bsp. von fatman genommen der das ganze in eine csv schreibt und speichertq_adressen->Close(); q_adressen->SQL->Clear(); q_adressen->SQL->Add("SELECT * FROM Mitarbeiter WHERE EinstiegsD = :ein"); q_adressen->ParamByName("ein")->AsString = einstieg; q_adressen->Open(); q_adressen->First(); l_anz->Caption = q_adressen->RecordCount; TStringList *Ausgabe; AnsiString Bezeichner, Inhalt; Ausgabe = new TStringList; q_adressen->First(); // ermittle die Einträge aus aktuellem Datensatz for (int Zeile=0; Zeile < q_adressen->RecordCount; Zeile++) { for (int Spalte = 0; Spalte < q_adressen->Fields->Count; Spalte++) { //gehe zur nächsten Zeile des Abfrageobjekts //schreibe Zeile in String durch ; getrennt Inhalt += q_adressen->Fields->Fields[Spalte]->AsString + ","; } // schreibe Zeile in AusgabeStringlistenobjekt struct ADRESSEN ADI[5000] = {Inhalt}; /*Hier kommt jetzt eine Fehlermeldung Konvertierung von AnsiString nach ADRESSEN nicht möglich im struct sind aber alle Felder als AnsiString deklariert*/ // leere String -> für Werte aus neuer Zeile Inhalt = ""; // gehe zu nächstem Datensatz q_adressen->Next(); } // speichere Inhalt als CSV-Datei //Ausgabe->SaveToFile("c:\\mitarbeiter.log"); delete Ausgabe;habts ihr eine idee wie es trotzdem gehen könnte?
grüße hCk
-
Hallo
Hier kommt jetzt eine Fehlermeldung Konvertierung von AnsiString nach ADRESSEN nicht möglich im struct sind aber alle Felder als AnsiString deklariert
Trotzdem kannst du nicht AnsiString in deinen Struct-Typ verwandeln, schließlich kann der Compiler nicht raten. ob und welches deer Struct-Member gemeint ist. Du must also den Struct-Member noch angeben.
ADRESSEN ADI[index].<Membername> = <AnsiString-Variable>Desweitern ist diese Zuweisung falsch, Du must das Array Element für Element füllen.
Benutzt beim Posten von Quellcode hier im Forum bitte die Code-Tags.
bis bald
akari
-
sry die tags haben sich gegenseitig beharkt wollte im c++ tag noch was fett schreiben..
habs jetzt mal so gemacht:
Inhalt = q_adressen->FieldByName("Vorname")->AsString; struct ADRESSEN ADI[1].Vorname = {Inhalt};kommt jetzt Fehler in der Deklarationssyntax

-
heckticker schrieb:
Inhalt = q_adressen->FieldByName("Vorname")->AsString; struct ADRESSEN ADI[1].Vorname = {Inhalt};warum verwendest du die geschweiften Klammern?
und lass das struct weg, ich vermute du hast das schon irgendwo definiert und willst es dort nicht neu definieren

-
ADRESSEN ADI[1].Vorname = Inhalt;ohne struct und ohne Klammern.
[edit]viel zu spät.
[edit]
-
ihr hattet recht, und ich bin voll blöde das adressen kann auch weg *sich an den kopf klatscht

öhm aber komischerweise wenn ich hinter ADI das [1] setze hagelt es Fehlermeldungen wenn ich das ganze jetz so mache -->
ADI.Vorname[1] = test;klappts einwandrei....
-
Hast ja recht. Da habe ich wohl gepennt. Das ADRESSEN gehört natürlich auch weg, es ist ja keine Deklaration.
-
passt ja muss ja selber meinen gehirnschmalz anstrengen
danke euch