Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

@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

Geschrieben

@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)

Geschrieben

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);

Geschrieben

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

Geschrieben

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?

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...