Hi,
unter visual c++ kann man doch bei odbc-treibern auch excel auswählen.
Jetzt dachte ich, ich schreibe nen schönen Brief mit excel, und schreibe dann per sql in bestimmte Felder des briefes meine daten rein. ich schaffe es aber nicht ein excel dokument so zu erstellen, dass visual c++ darin felder erkennt. ich hab's schon mit dem vorlagenassistenten probiert, hat aber nicht geklappt. hat einer von euch ahnung wie das geht, oder vielleicht wie man das in word macht, dass soll auch gehen, wenn auch ohne odbc.
Gruß jens
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Datenbanken verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?
Dieses Posting wurde automatisch erzeugt.
Der Datentyp braucht immer gleich viel Speicher. Die Werte in Klammern ist nur zuständig dafür wieviele Zeichen er dir zurückgibt. (Genauigkeit)
INT hat immer 10 Ziffern.
INT(10) ist der max. bei INT
INT(3) braucht genausoviel Speicher wie INT(10). Jedoch werden nur 3 Ziffer zurückgegeben.
Da nimmt man dann tinyint oder ähnliches.
Dei Eintrag ist zwar schon etwas länger "alt", habe ihn aber erst jetzt gesehen.
Nach Installation von Oracle 10 hatte ich ein ähnliches Problem. Gefunden habe ich:
http://www.planware.com/anyQuery/anyQuery_start.html
Als Demoversion ist es auf 10 Abfragen pro Sitzung begrenzt. Ob es Dir 55 Euro wert ist, mußt Du selbst entscheiden.
Ansonsten kenne ich nichts besseres als den SQL-Navigator, der aber recht teuer ist.
Die meisten Datenbanken unterstützen von sich aus Platzhalter. Üblicherweise werden die durch ein Fragezeichen gekennzeichnet:
select * from whatever where x = ? and y = ?
Beim Ausführen musst du dann natürlich die Platzhalter mit Werten belegen. Da musst du mal in deine Doku schauen. Bei ODBC geht das z.B. per SQLBindParameter().
Eine andere Möglichkeit ist eine UDF zu schreiben. Der übergibst du einfach Statement-ID und Variablen und sie liefert dir das Statement mit den ersetzten Platzhaltern. Das ist so simpel, dass sollte mit einer UDF in Plain SQL problemlos möglich sein. Wenn deine DB keine überladenen UDFs erlaubt, musst du mehrere machen, je nachdem wieviele Variablen vorkommen (z.B. GetStatement1Var(), GetStatement2Vars() usw.).
Du kannst dir das komplette Statement dann einfach abholen, indem du die UDF aufrufst:
VALUES GetStatement(42, 'München')
Das VALUES ist bei deiner DB evtl. nicht nötig (siehe Doku deiner DB).
Du kannst es natürlich auch einfach mit den C++ Funktionen händisch machen (siehe std::string Doku).
Hallo,
ich bedanke mich erst einmal für die rege Anteilnahme an meinem Problem.
@ Artchi, ich denke den Sinn einer DB und deren Aufbau schon ein wenig zu kennen. (hätte lieber doch nicht "Anfänger" schreiben sollen!)
Ich weiß auch wie man eine DB indiziert. Die Problematik ist mir geläufig. Betone aber noch einmal, meine DB ist nicht indiziert.
Damit mir auch alle glauben, dass es funktionieren soll gebe ich zum besseren Verständnis einen kleinen Auszug aus der "Hilfe" mit.
void __fastcall Append(void);
1 Ein neuer leerer Datensatz wird am Ende der Datenmenge hinzugefügt.
• Bei indizierten Paradox- und dBASE-Tabellen wird der Datensatz an der seinem Index entsprechenden Position in die Datenmenge eingefügt.
• Bei nicht indizierten Paradox- und dBASE-Tabellen wird der Datensatz am Ende der Datenmenge angefügt.
void __fastcall Insert(void);
1 Ein neuer leerer Datensatz wird in der Datenmenge geöffnet.
• Bei indizierten Paradox- und dBASE-Tabellen wird der Datensatz an der seinem Index entsprechenden Position in die Datenmenge eingefügt.
• Bei nicht indizierten Paradox- und dBASE-Tabellen wird der Datensatz an der aktuellen Cursorposition eingefügt.
Die Aussage des letzten Satzes will ich realisiert haben, nicht mehr und nicht weniger. Noch einmal zur Erklärung: Bei nicht indizierten Paradox-Tabellen wird der Datensatz an der aktuellen Cursorposition eingefügt.
Bei dBase-Tabellen jedoch nicht. Weshalb?
MfG Ingolf
dreaddy schrieb:
mysql ver ist 3.23.58
Habs gerade nachgelesen: Ab 4.1 kann MySQL Subqueries.
(Die 4.1er Version kommt mir übrigens irgendwie schneller vor, als die 3er...)
WHERE qq.aufnr=tt.id
bei updates geht sowas bei mysql nicht.
also bei updates eine bedingnung aus einer anderen tabelle benutzen.
weil mysql atomar arbeitet ( oder wie das bei denen auch immer heisst )
ach ja, ich würd das tabellendesign nochmal überdenken
du brauchst bei relationen immer eine eindeutige fortlaufende nummer
in jeder tabelle. wenn nicht, wirst du es spätestens bemerken, wenn du mal was löschen willst
gruss
der ferngesteuerte
SuseOracle schrieb:
Hallo,
ist eine Oracle-Datenbank für Linux BS kostenpflichtig?
Kann ich auf die Suse Version 7.0 einen Server-Oracle-Datenbank installieren?
VD MfG
Wenn du die Oracle DB kommerziell nutzen willst wirst du eine Lizenz brauchen.
Ja, es sollte funktionieren auf suse eine Oracle DB zu installieren.
Weitere Informationen solltest du unter http://www.oracle.com finden...
hmm das timeout kann ich aber sich nur am server einstellen oder? naja ich hab aber nur zugriff auf eine datenbank. Naja aber die andere idee mit dem ueberpruefen und dann neu connecten, klingt einfach und logisch. Thx 4 help
Hallo zusammen,
ich möchte gerne herausfinden ob eine Tabelle existiert oder nicht
(wenn nicht erzeuge ich sie dann.)
Ich habe das schonmal vor eineiger zeit mit einer MS-SQL Datenbank gemacht aber für Interbase/Firebird finde ich nichts ;-(.
Weiss einer wie/ob das funktioniert ?
Danke
Das funktioniert aber nur mit der aktuellen verbindung. SChließ man die Verbindung , öffnet sie und fragt dann die last_insert_id ab gint es falschen wert.
Hallo,
ich habe ueber DAO eine Access-Datenbank mit Tabellen und den dazugehoerenden Relationen erstellt.
Nun moechte ein ich Makro und ein Formular einer Access-Datenbank mit C++ schreiben, geht das ueberhaupt?
Wer kann mir weiterhelfen?
Please help!
Gruesse
Jorge