Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

guten morgen,

kann ich in eine sql abfrage einen string einbauen?

hier mal der entsprechende code

//----------------Starten einer Abfrage mit dem letzten Datensatz, gespeichert in last-------------------

if(0!=mysql_query(walditest,"SELECT * FROM walditest WHERE datum >= last"))

{

printf("Problem with the query\n");

}

hierbei spreche ich mysql über die c-api an.

danke für eure vorschläge, und noch nen schönen tag.

hold on, bald ist we!!!:marine

Geschrieben
was ist das?

Ein Wide Character ist im gegensatz zum "normalen" char 2 Byte groß und vereinfachen

das Programmieren mit internationalen Zeichensätzen.

Mit der Funktion MultiByteToWideChar() wandelst du einen char in einen wchar um

und mit WideCharToMultiByte() umgekehrt.

Geschrieben

#include<string.h>

#include<stdio.h>

#include"mysql.h"

int main ()

{

MYSQL *walditest;

MYSQL_RES *reswaldi;

MYSQL *waldi_in;

MYSQL_RES *reswaldi_in;

MYSQL_ROW waldi_in_row;

MYSQL_FIELD *field;

my_ulonglong anz_zeilen;

char abfrage[100],temp[100];

const char abfrage_template[] = "SELECT * FROM data2 WHERE datum > %s";

unsigned int i;

//--------------------------------Verbinden mit walditest------------------------------------------

walditest = mysql_init(0);

walditest = mysql_real_connect(walditest,"the-air","scott","tiger","walditest",0,0,0);

if(walditest==0)

{

printf("Problem mit der Verbindung zu Walditest\n");

}

if(0!=mysql_query(walditest,"SELECT datum,wert FROM data2"))

{

printf("Problem with the query(walditest)\n");

}

//--------------------------------Verbinden mit waldi_in--------------------------------------------

waldi_in = mysql_init(0);

waldi_in = mysql_real_connect(waldi_in,"the-air","scott","tiger","waldi_in",0,0,0);

if(waldi_in==0)

{

printf("Problem mit der Verbindung zu Waldi_in\n");

}

//---------------------------------Auswählen aller Datensätz in waldi_in-----------------------------

if(0!=mysql_query(waldi_in,"SELECT datum,wert FROM data"))

{

printf("Problem with the query(waldi_in)\n");

}

reswaldi_in = mysql_store_result(waldi_in);

//------------Anzahl Zeilen Ergebnismenge auslesen und zum letzten Datensatz gehen--------------------

anz_zeilen = mysql_num_rows(reswaldi_in); //anzahl zeilen ergebnismenge

printf ("Anzahl Zeilen: %lu\n", (unsigned long) mysql_num_rows(reswaldi_in)); //ausgabe anzahl zeilen

mysql_data_seek(reswaldi_in,anz_zeilen-1); //zum letzten tupel springen

waldi_in_row=mysql_fetch_row(reswaldi_in); //daten auslesen

//printf("%s %s\n",waldi_in_row[0],waldi_in_row[1]); //daten ausgeben

//strcpy(last,waldi_in_row[0]); //speichern des letzten datums im string last

//printf("%s\n",last);

//----------------Starten einer Abfrage mit dem letzten Datensatz, gespeichert in last-------------------

snprintf(abfrage, sizeof abfrage, abfrage_template, waldi_in_row[0]);

abfrage[sizeof abfrage-1]=0;

printf("%s\n",abfrage);

if(0!=mysql_query(walditest, abfrage))

{

printf("Problem with the query 2\n");

}

mysql_close(waldi_in);

mysql_close(walditest);

}

hier der ganze code. problem ist: die letze abfrage funktioniert nicht.

aufgabenstellung:

in die quelldatenbank werden unregelmäßig daten geschrieben. mein progi wird regelmäßig aufgerufen, erkennt neue einträge und schreibt diese in die zieldatenbank. deshalb auch die datumsüberprüfung (alle einträge die neuer sind als der letzte der zieldb sollen kopiert werden). und bei dieser abfrage hakelt es schon.

soweit der erste teil.

hab ichs einigermaßen verständlich ausgedrückt?

Geschrieben
hab ichs einigermaßen verständlich ausgedrückt?

Ja, aber ich dachte es geht allgemein um SQL Befehle in C, mit MySQL hab ich noch

nie was gemacht, kann dir da also nicht weiterhelfen.

Am besten wartest du mal bis Klotzkopp wieder im Forum ist, der kann

dir bestimmt helfen.

Gruß

Guybrush

Geschrieben

kann ich pro verbindungsid ( die ich ja bei mysql_connect bekomme) nur eine abfrage starten?

d.h möchte ich auf eine db zwei abfragen starten baue ich eine zweite verbindung auf?

Geschrieben
Originally posted by jesusjones

kann ich pro verbindungsid ( die ich ja bei mysql_connect bekomme) nur eine abfrage starten?

Würde mich wundern, wenn das so wäre. Ist das jetzt ein neues Problem? Hat sich das alte erledigt?
Geschrieben

ja, ich denke. der fehler war folgender: ich hätte die db nach der ersten anfrage mit mysql_free_result(MYSQL_RES) freigeben müssen.

andere frage: kann ich in einer select anweisung schon irgendwas formatieren?

z.b select datum from data where datum >= 200202021546

der typ von data ist datetime, also kommts in der form in die ergebnismenge: 2002-02-02 15:45:49

kann ich das so formatieren das es in der from kommt 20020202154649

puh, ich will wochenende haben!!!!:eek:

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...