Hallo,
es hängt von dem Interface ab über das du die Anfrage rausschickst.
Viele Treiber erlauben es, mehrfache Anweisungen durch ';' getrennt abzugeben, welche dann sequenziell abgearbeitet werden. (Das setzt natürlich voraus, dass du die ID vor dem Absenden beider Queries kennst).
Wird die ID aber erst beim ersten Query Datenbankseitig generiert, so geht diese Möglichkeit natürlich nicht
Dann solltest mal gucken, dass du dir für solche Dinge eine stored-procedure baust, mit der du dann nach dem ersten insert die ID liest um den nächsten Satz zu schreiben.
Vorteil gegenüber zwei getrennten Abfragen liegt wohl darin, dass du nur einen Verbindungsaufbau brauchst und die Datenbank dir nur einmal "zuhören" muss
mfg jghj
Hallo,
Nehmen wir an ich designe eine dynamisch datenbank, bei der ich die typen
welche geloggt werden noch nich kenne.
A.) kann ich variant typen in ACCESS DB anlegen
B.) wie istes bei abfragen mit bedingungen, erkennt SQL dann automatisch den typ wenn ich eine VAraint typ auf zahl oder string pürfe etc.?
Hallo Forum,
ich habe vor in einer MySQL Datenbank viele Binärdaten sowie lange Texte zu speichern...wie ich jetzt schon mehrfach (aber immernur "nebenbei") gelesen habe, dass das die Datenbank allgemein sehr langsam machen kann. (Was ja auch logisch ist, wenn er alles in einer Datei speichert; gibts es da keine besseren Möglichkeiten Seitens des DBMS?)
Was ich gerne von euch hören würde wären Erfahrungsberichte bzw. Zahlen, ab wieviel Volumen ich mit schlechten Antwortzeiten rechnen kann (dass das nicht Pauschal geht ist ganz klar, weil ne Superdome garantiert mehr verträgt...aber so in Otto-Normalverbraucher-Größenordnungen ein paar Erfahrungen eben).
Zur Gegendiskussion würde ich gerne stellen ob es Sinn macht, die langen Texte und/oder die Binärdaten auf mehrere Datensätze aufzuteilen, so dass jeder Satz an sich relativ schlank bleibt, und die Arbeit des Zusammensetzens eben dem Applicationserver überlassen wird?
Außerdem würde mich interessieren ob ihr die Maximalgrößen der InnoDB-Engine kennt? Gibt es da Regeln die besagen, z.B. DB darf nicht größer als 4GB werden, oder eben maximale Tabellengröße so und so? Die Maximale Größe eines LONGBLOBS habe ich gefunden bei 2^32Byte was 4GByte bedeuten dürfte? Aber wenn die Tabelle oder gar die DB nicht mehr aushält bringt mir das ja auch nicht viel
Vielen Dank für Überlegungen und Diskussion!
mfg jghj
Hat sich grad erledigt
Der Fehler war ich hatte die LIB mit Visual Studio und dem kompletten sourcecode erstellt. Hatte mich eh schon gewundert warum die LIB 2 MB groß war.
Nachdem ich die LIB per C++ Kommandozeile und dem Befehl "LIB /DEF:sqlite3.def" mithilfe der DEF datei erstellt hatte (jetzt nur 35 KB groß) funktioniert die neue LIB auch.
Der Obere Code lässt sich nun ohne probleme kompilieren und ausführen.
Hallo,
Ich habe eine Seite auf HTML. Ich möchte diese in PHP mit Adminbereich und einigen Funktionen habe. Suche Jemanden der das kann und an einen Tausch Interessiert ist.
Tauschgegenstand währe ein Cam Portal kein Billig Produkt.
Das Proplem bei den Portal ist es Interessiert mich nicht mehr und das haupt Poroplem ist mein Provieder hat auf PHP5 umgestellt und seitdem hat es ein Paar macken. Jemand der sich mit Programmierung auskennt ist das sicher kein Proplem.
Auf PHP4 lief das Portal ohne Propleme. Einkaufspreis war 4500€
Ich würde es Tauschen.
Bei Interesse oder Fragen bitte melden.
Meine Mail.: rene7777@gmx.at
danke
lg rene
Hallo,
die ldb Datei enthält ja die Verbindungen einzelner User zur DB.
Wenn ich nun eine Datenbank öffne via ADO etc. und sie durch ein ausnahme fehler nicht mehr geschlossen wird, bleibt die erzeugte Verbindugn ja in der ldb Hängen.
Gibt es ne möglichkeit diese ldb zu löschen, quaise ne hardcore löscung nach DB problemen?
Grüße
Hallo soeni,
sieh die mal die Funktionen
int sqlite3_prepare(sqlite3*, const char*, int, sqlite3_stmt**, const char**);
int sqlite3_step(sqlite3_stmt*);
const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);
in der Doku
http://www.hwaci.com/sw/sqlite/capi3.html
an.
Gruß
Peter.
Hallo @Th und @-=]xXx[=- ,
Dankeschön für Eure Antworten.
Habe in der VCL-Hilfe geschmökert und doch noch eine Lösung gefunden, die in die in Richtung geht, die @Th vorschlägt. Mit DisplayWidth erhalte ich exakt die Spaltenbreiten, die die MySQL-Tabelle hat.
TADODataSet *adoDS;
adoDS = new TADODataSet(NULL);
adoDS->Connection = ADOConnection1;
adoDS->CommandType = cmdText;
adoDS->CommandText = AdoSQL; //z.B. AnsiString AdoSQL="SELECT *....
adoDS->Open();
bool okay = (adoDS->RecordCount > 0); // DS vorhanden
if (okay){
int* Spalten = new int[adoDS->RecordCount];
for (int i=0; i<adoDS->FieldCount; i++) Spalte[i] = adoDS->Fields->Fields[i]->DisplayWidth;
//weitere Bearbeitung mit den ermittelten Spaltenbreiten...
delete []Spalten;
};
adoDS->Close();
delete adoDS;
du mußt natürlich noch abklären dass die Id von Rent gleich der von Software ist, also entweder:
SELECT software.id, software.name, rent.personId FROM software, rent WHERE rent.personID = 1 AND rent.SoftwareId = software.id;
oder
SELECT software.id, software.name, rent.personId FROM rent join software ON (rent.SoftwareId = software.id) WHERE rent.personID = 1;
Und woher soll die Datenbank wissen, aus welcher Zeitzone das Datum kommt?
Nochmal: UTC ist kein Format, sondern bezeichnet (vereinfacht) die Zone auf der Welt, in der die Zeitverschiebung +-0 beträgt. Hier in Deutschland leben wir z.B. in einer Zone, die eine Verschiebung von einer Stunde Plus hat (während der Sommerzeit 2). Das bedeutet, dass, wenn wir hier 15 Uhr haben, es in den Bereichen der Erde, die keine Zeitverschiebung haben (+-0) es 14 Uhr ist. Wir leben daher in der Zeitzone UTC+1:00h (veraltet auch GMT+1:00h).
UTC ist also praktich der Maßstab, zu dem relativ die Zeitverschiebung in den Zeitzonen nach Osten und Westen hin) angegeben werden.
in der Regel läuft der abgleich so ab, dass du die Inhalte der Tabelle fetchst und das Ergebnis der Reihe nach durchgehst
oder aber du bearbeitest deinen SQL-Query... (in deinem Fall sinnvoller)
SELECT passwort FROM tabelle WHERE username = 'USER'
ist der User vorhanden, liefert dir der Query das zugehörige Passwort, das du dann nur noch abgleichen musst
noch ne frage,
wär es für die geschwindigkeit nicht besser wenn man username und passwort in einem feld speichert?
also z.b.
im ersten feld is "test:test" 2 feld ist wie lange der account noch gültig ist oder so ^^
der user gibt ein username ein und ein passwort, die beiden werden mit einem ":" kombieniert und dann wird nachgeguckt.
Dann wird halt nur zurückgegebnen "Username oder Passwort ist falsch"
aber is ja auch sicherer ^^
ein Datensatz als solches sollte sicher genug sein und auch einen Geschwindigkeitsvorteil wirst du nicht bemerken (wohl eher im Gegenteil)...
Und was machst du, wenn der User einen Doppelpunkt im Usernamen oder im Passwort hat (wobei letzteres aber eh nur als Hashwert abgespeichert werden sollte)
noch dazu ist das nicht der Sinn einer Datenbank... Es sind unterschiedliche Attribute eines Datensatzes, also auch zwei unterschiedliche Felder
Hallo zusammen,
erst mal ein gutes neues Jahr Euch allen.
Ich glaub, dass ich ein Stück weiter bin.
const char *strSQL;
strSQL="SELECT * FROM tblberuf;";
mysql_query(mysql,strSQL);
result=mysql_store_result(mysql);
recordset_row=mysql_fetch_row(result);
listBox1->Items->Add(recordset_row[0]);
Ich versuche nun auf ein bestimmtes Feld meiner Variable(recordset_row) zuzugreifen. Ein Kollege sagte, dass das somit ein char-Array(char wäre. Wenn ich das versuche in der Listbox auszugeben(s.o.), erscheint folgende Fehlermeldung:
cannot convert parameter 1 from 'char *' to 'System::Object ^'
Da ich aber weiß, dass ich für die Listbox eine Variable vom Typ System::String benötige, muss ich meinen char-Array(char in einen System::String umwandeln?
Weiß jemand von Euch wie das geht?
Bin für jede Antwort dankbar.
MfG
Andy