20. April 200520 j Hi zusammen, ich habe mir ein Programm geschrieben, mit dem ich SQL-Befehle, die ich in einer Datenbank hinterlegt habe auslesen und ausführen kann. Nun hab ich aber das Problem, dass ich nicht weiß wie ich das anstellen soll, wenn ich die SQL-Anweisung während der Laufzeit meines C++ Programmes noch ändern will. Z.B hab ich in der datenbank stehen: select kundennr from kunde where Kundenort = ??? Wie kann ich dann zur Laufzeit diesen Platzhalter (???) tauschen??? danke
20. April 200520 j du liest den befehl aus der db aus und hängst per funktion den laufzeitgenerierten teil dran und führst ihn dann aus. rein logisch würd ich das so lösen - programmtechnisch weiß ich nicht ob das so einfach geht wenn du die idee auch schon hattest, diese aber nicht umsetzbar war, dann ignorier mein post
20. April 200520 j welchen teil meinst du?? sql-befehl aus datenbank raus sql-befehl manipulieren sql-befehl ausführen vom user daten empfangen
20. April 200520 j ich muss zugeben ich hab noch nicht so viel in c gemacht, mein vorschlag war ja auch mehr rein techisch als programmiererisch :cool: aber wenn dein sql-befehl als string hast sollte es mit der funktion >> strcat << eigentlich leicht gehen.
20. April 200520 j du liest den befehl aus der db aus he... erstmal bitteschön wie und wo zu ???? @tox-master woher kriegst du die info von Kundenort ??
20. April 200520 j he... erstmal bitteschön wie und wo zu ???? ?? wo hat den tox-master die befehle hinterlegt, hmm ??
20. April 200520 j @maulwurf schonmal danke @bigpoint Ich bekomme diese Daten aus meiner Datenbank. Ich habe z.B in meiner Datenbank eine SQL-Anweisung die lautet: SELECT COUNT(*) FROM VGE; Diese ganze SQL-Anweisungen sind in der Datenbank anhand einer fortlaufenden Nummer gekennzeichnet. Wenn ich nun aber so etwas habe will wie select kundennr from kunde where Kundenort = ??? Muss dass doch in der Datenbank wahrscheinlich so: select kundennr from kunde where Kundenort = <<Platzhalter>> festgehlaten werden. Wie jedoch kann ich dann mit meinem Programm mittels Dialog oder MessageBox den Platzhalter mit beispielsweise München ersetzten??? danke
20. April 200520 j @bigpoint Ich bekomme diese Daten aus meiner Datenbank. Ich habe z.B in meiner Datenbank eine SQL-Anweisung die lautet: SELECT COUNT(*) FROM VGE; Diese ganze SQL-Anweisungen sind in der Datenbank anhand einer fortlaufenden Nummer gekennzeichnet. Ach so. Als erstens SQL Anweisungen die in DB (Tabellen) gespeichert sind finde ich nicht als besonders gute Idee (dafür gibt es Funktionen oder Prozeduren) Wie jedoch kann ich dann mit meinem Programm mittels Dialog oder MessageBox den Platzhalter mit beispielsweise München ersetzten??? danke Ganz normal du liest es von Dialog aus und ersetzt den „platzhalter“ in deinem SQL Befehle (string)
20. April 200520 j Kannst du mir einen Beispielcode dafür geben?? Bin bisher noch nicht drauf gekommen, wie ich das anstellen kann. danke
20. April 200520 j GetDlgItemText( IDC_BEFEHL, strKey ); x_strSQL.Format("SELECT SQSTEXT FROM SQS WHERE SQSNR = %s", strKey ); cursor = m_pDatabase->OpenCursor(); m_pDatabase->PrepareAndExecute(cursor, x_strSQL, 0); while (m_pDatabase->FetchNext(cursor)) m_pDatabase->GetFieldValue(cursor, 1, x_strValue);
20. April 200520 j Und was funkt hier nicht ? Ach so übrigens, Du bisst im falschem Forum (eins höher) !?
20. April 200520 j Das funktioniert ja! Aber mit dieser Funktion lese ich nur die SQL-Anweisung aus meiner Datenbank aus. Wie kann ich die ausgelesene SQL-Anweisung danach bearbeiten??? Sprich wie kann ich dann einen Platzhalter durch andere Daten ersetzen?? danke
20. April 200520 j hi, wenn du den befehl strcat verwenden willst dann ist hier ne kleine (englische) instruktion
20. April 200520 j Das mit der Datenbank hat wohl einige verwirrt Du willst Sachen in einem Text ersetzen, in c. schau mal auf http://anaturb.net/C/string_exapm.htm, wenn du C++ verwendest und string verwenden kannst... str.replace(4, // start position in str 2, // how many characters s1); // source for replasment strcat hängt nur text hinten an ein char* an. Ist dein dynamisches Zeug immer am ende? dann könntest du in etwa sowas machen: if(str[strlen(str)-1]=='?'){ str[strlen(str)-1]=0; strcat(str, "eigentlich wäre PHP dafür angenehmer, weil du da strtr verwenden kannst."); } Deine Frage hat eigentlich nichts mit Datenbanken oder Oracle zu tun ..., oder?
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.