@RHBaum:
Ja, das hatte ich ja jetzt auch vor. Hatte mal wegen dieser aes-Verschlüsselung geschaut, aber konnte eben in Verbindung mit Firebird noch nichts finden.
Die Berkeley db von der ersten Seite kann es, aber ist in c und ohne SQL. Das wäre erstmal für mich absolutes Neuland.
Hatte schon an eine Eigene Verschlüsselung gedacht (mit nem Key, und nem char usw).
Ich möchte nur sehr gerne noch eine Suchfunktion später in der Datenbank haben, und weiss nicht, wie sich die Verschlüsselung auf die Suche bemerkbar macht (nach dem Motto : suche alles was mit hau* anfängt).
Auch wenn jemand in Bezug auf Verschlüsselung links oder andere Sachen hätte, ich wäre dankbar.
Lg Carsten
Ich habe ein Datumsfeld in einem Dialog, der mit MFC erstellt wurde. Dort wählt man mit der Maus in dem Kalender das Datum, was übernommen wird. Wähle ich das heutige, dann speichert die DB das trotzdem als 1970-1-2. Das muss ja irgendein Standard-Ding sein, da es unabhängig vom eingegebenen Datum ist.
tut mir echt leid!!
absolut falsches forum ;). hatte das forum per google gefunden und direkt drauf losgepostet...
Problem ist übrigens schon gelöst (email='$email' war die Lösung)
thread löschen bitte
Hallo Leute!
Ich suche schon seit Tagen nach Beschreibungen wie C++ und MySql-Datenbanken zusammenarbeiten und habs auch inzwischen geschafft zu connecten und Tabellen zu erstellen und zu füllen! Doch nun stellt sich mit dir Frage wie ich die Ergebnisse einer SELECT-Anfrage ausgeben lassen kann!
Ich hab bisher nur mittels PHP auf eine MySql-DB zugegriffen, und auf diese weise scheint es nicht zu gehen in C++, weil der mysql_real_query() befehel einen int zurückgibt ^^
blablabla ^^
also, wie kann ich select-ergebnisse ausgeben lassen?
hab leider nix gefunden in der richtung
schonma danke, sebi
Hallo,
ich möchte den Pafd für den Ordner Data, wo die ganzen Datenbanken liegen, ändern. Das eingesetzte System ist MSSQL Eyxpress 2005, ist auf Visual Studio 2005 zurück zuführen. Derzeit ist der Standardpfad C:\Programme\MicrsoftSQL\Data eingestell, er soll aber Z:\Data werden.
Ich hab mir angewöhnt, insbesondere bei Datumsangaben, parametrisierte Selects zu verwenden. Macht einem das Leben leichter, da die Konvertierung des Typs vom der Datenquelle in das entsprechende Format automatisch durchgeführt wird.
Ich hab schon oft genug erlebt, dass das, was auf Datenbank A prima klappt auf B dann obigen Fehler wirft. Manchmal reicht das Ändern der Datumsanzeigeeinstellungen unter Windows, um diesen Fehler zu produzieren...
TADODataSet1->SQL->Clear();
TADODataSet1->SQL->Add("SELECT * FROM daten WHERE datum BETWEEN :pDatumVon AND :pDatumBis");
TADODataSet1->ParamByName("pDatumVon")->AsDateTime = TDateTime(2007,1,1);
TADODataSet1->ParamByName("pDatumBis")->AsDateTime = TDateTime(2007,1,2);
select
count( if(mem_id='xxx' AND folder='inbox' AND type='1' AND new='new',1,0) ) as cnt1,
count( if(type='2' AND mem_id='xxx',1,0) ) as cnt2,
count( if(type='3' AND mem_id='xxx',1,0) ) as cnt3,
count( if(type='4' AND mem_id='xxx',1,0) ) as cnt4,
count( if((type='5' OR type='6') AND mem_id='xxx',1,0) ) as cnt5
;
SELECT Buch.*
FROM Buch INNER JOIN Verleih ON Buch.ausgeliehen_am=Verleih.ausgeliehen_am
er weiss sonst nicht, auf welche tabelle sich das "*" bezieht.
select * from tabelle where
(id1=1 or id1=6 or id1=2) or (id2=1 or id2=6 or id2=2) or (id3=1 or id3=6 or id3=2);
das or zwischen den klammern muss sein, da du ja z.b. auch alle datensätze von id2 willst, auch wenn er zu id1 nichts findet. es darf keine abhängigkeiten zwischen den id´s geben. schreibe das nur, weil du in deiner beispielabfrage AND benutzt hast. vorraussetzung: ich habe dein problem richtig verstanden.
Kann es vielleicht an der "libmysql.lib" liegen? Wenn ich Sie nicht im Projektordner liegen habe, dann erscheint beim Erstellen diese Fehlermeldung:
Linker-Vorgang läuft...
LINK : fatal error LNK1181: Eingabedatei "libmysql.lib" kann nicht geoeffnet werden
Fehler beim Ausführen von link.exe.
Hab nun nen neuen Ansatz, Problem liegt scheinbar
bei mysql_real_escape_string(),
habe nun die Methode SQLFillBlob überarbeitet, JPG werden nun sauber gespeichert, PDF geht aber nicht!!!!!
Da hab ich z.B. plötzlich für "09 08 10 00" "FF FF FF FF"
bool TMySQL::SQLFillBlob(int id, String tableName, String spaltenName, String data, int maxallowd)
{
while (data.Length() > 0)
{
String line = data.SubString(1,maxallowd);
data.Delete(1,maxallowd);
char* to = new const char[line.Length()*3];
if(!to){
if(!to){delete[] to;}
return false;
}
unsigned int ret = my_mysql_real_escape_string((MYSQL*)m_mysql, to, line.c_str(), line.Length());
line = String(to, ret);
if (doExecSQL("UPDATE " + tableName + " SET " + spaltenName + " = CONCAT(" + spaltenName + ",'" + line + "') WHERE id = " + IntToStr(id),true) != 1)
{
if(!to){delete[] to;}
return false;
}
if(!to){delete[] to;}
}
return true;
}
Hmm und was muss ich da noch includen?
Gibts eigentlich eine Seite wo alle möglichen includes oderso stehen?
Also was man für welche Funktion includen muss?
Die ist ja noch nicht alzu komplex
Aber wenn die Möglichkeit besteht dann eventuell nochmal in kleinere einfachere Views aufteilen und diese dann nutzen für die Abfragen. Je kleiner die einzelnen Bestandteile desto einfacher wirds. Solltest allerdings testen inwiefern die Performance darunter leidet (Wenn zu stark dann erstmal in einzelteilen entwickeln und dann wieder zusammenbauen)
Wenn keine Views möglich dann über Funktionen/Proceduren/Temporäre Tabellen, ansonsten ist halt auf jedenfall wichtig das man den SQL Code auch so wie C++ Code zB formatiert und sich des öfteren mal ein kommentar dazu macht. Dann bekommt man mehr Übersicht. Die Formatierung aus der Musterlösung ist zB absolut schlecht.
Du könntest in der Tabelle D eine Art Referenzzählung einführen:
In einer zusätzlichen Spalte vermerkst du, wie oft von anderen Tabellen auf dieses Element verwiesen wird. Wenn du ein Element in A, B oder C einträgst, erhöhst du den Zähler der zugehörigen D-Zeile (bzw. fügst ein neues Element mit Zähler=1 ein), beim Löschen verringerst du ihn - und wenn der Zähler auf 0 runtergeht, kannst du die Zeile löschen.