Forum
Tipps
News
Menu-Icon

MySQL Datien / Dateiverweise speichern und ausführen

Hallo alle zusammen!

Brauche mal wieder eure Hilfe...

Und zwar habe ich eine MySQL-Datenbank, auf welche ich mit Borland C++ Builder zugreife...

Ich habe eine Applikation, welche unter anderem auch Fakturierung unterstützt.

Das heist ich möchte gerne aus der Anwendung heraus ein PDF-File öffnen.

Dieses hätte ich gerne in meiner Datenbank (entweder das File selbst, oder aus Platzgründen nur ein Verweis auf das File).

So, die Theorie steht schon mal, jedoch weis ich nicht, wie ich das umsetzen soll.

Habe schon in Google gesucht, aber nichts brauchbares gefunden.

Was ich brauche, wäre die der SQL-Aufruf, um eine Datei, bzw. einen Verweis auf eine Datei in MySQL (SQL) einzubinden.

Welchen Datentyp, wie gross, etc....

Danke schon mal im Voraus!

Lieben Gruss

Daddy


Antworten zu MySQL Datien / Dateiverweise speichern und ausführen:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hi |

Komplett speichern würde ich die PDFs in der Datenbank nicht, dann soch lieber ein Verweis ;)

Da fügst du einfach ein Textfeld (also variable Länge) in die DB-Tabelle ein, da du ja vorher schätzungsweise nicht weißt, wie lang die Pfadangabe wird. Naja, da war's eigentlich schon, denn der Rest ist wie gewohnt ;)

greez 8)
JoSsiF

Thx JoSsiF!

Aber was meinst Du mit wie gehabt?

Wie kann ich denn die Datei später ausgeben/öffnen???

Gehts das dann "wie gehabt" mit zum Beispiel

SELECT Datei FROM Rechnungen WHERE Kundennummer = 100;

Wobei Datei dann das Textfeld wäre!?

Desweiteren, muss man Dateinamen und Pfad nicht irgendwie so angeben?!?

Hatte da mal was gesehen, ist aber schon ewig her...

%Filename%
und
%Filepath%

Oder kann man da den Pfad inklusive Datei in Reinschrift schreiben, bzw. übergeben, z.B.

C:\Datei.pdf

?!?!

Sorry, habe zwar schon einiges mit MySQL gemacht, allerdings noch nie etwas mit Dateien....

 :-[

;-)

Lieben Gruss

Daddy 
« Letzte Änderung: 13.02.07, 16:17:31 von Big-Daddy »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Kommt drauf an, ob der Pfad statisch ist, denn dann bräuchtest du ihn nicht mit abspeichern.

Wenn der Pfad immer mal anders ist und daher mit abgespeichert wird, dann kannst du ihn ruhig der Datei voranstellen, also den kompletten Pfad zur Datei abspeichern. Ich würde in dem Fall aber immer Slashes ("/") zur Trennung der Verzeichnisse nehmen und bei Bedarf dann umwandeln (ui, jetzt weiß ich gar nicht mehr, ob C++ unter Windows auch mit Slashes zurecht kam :-[).

Wie der weitere Weg in C++ aussieht, kann ich dir leider nicht sagen, aber den kompletten Pfad solltest du dann eigentlich mit einem normalen Select auslesen können, also genau wie von dir beispielhaft angeführt ;)

greez 8)
JoSsiF

Ich bekomms nicht hin...


Wenn noch jemand nen Link kennt, oder nen Tipp hat, dann immer raus damnit...

Thx!

Gruss

Daddy

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Woran scheitert's?

ok, dann...

Und zwar schreibe ich momentan eine Applikation, welche eine Art kleine Kundenverwaltung darstellen wird (GUI-Anwendung).

Die Datenein- und Ausgabe funktioniert auch soweit sehr gut, jedoch möchte ich gerne auch externe Dateien in die Datenbank schreiben, z.B. eine Rechnung im PDF-Format.

Diese soll dann auch aus der App. aufgerufen werrden können, so das sich der Acrobat öffnet...

Diese Verweise schreibe ich momentan in  TEXT-Datensätze,  jedoch weis ich nicht, wie ich die eigentliche Datei dann öffnen kann....

Zum Beispiel habe ich folgende Tabelle:

ID           Datei
1            c:\irgenwas.pdf
2            c:\irgendetwasanderes.pdf

Id ist integer inkl. autoincrement unique etc. Primary Key halt ^^....

Datei ist momentan Textfeld....

Hier ein Stück aus meinem C++ Code...


void __fastcall TForm1::Button2Click(TObject *Sender)
{

Form1->ADOQuery1->SQL->Clear();
Label1->Caption = Form1->ADOQuery1->SQL->Add("Select Datei FROM data WHERE ID = 1;");
Form1->ADOQuery1->Open();

ADOQuery1->Close();

}


Wenn ich mir das Ergebnis Testweise ausgeben lasse (Messagebox), sollte doch eigentlich --> C:\irgendwas.pdf drin stehen, steht aber 0 drin......?????????????????

Abgesehen davon hätte ich erwartet, das das die Datei öffnet..............?!?!?!?!?

wahrscheinlich etwas arg naiv, oder schon zu viele Biere intus (trainier für Karnevall ^^ ;-) )

Lieben Gruss

Daddy

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Alright :)

Also wie gesagt: Am besten nur mit Slashes statt Backslashes speichern, weil die Backslashes ja als Escape-Zeichen gelten.

Mit dem String...hm, das is so 'ne Sache. C++ nimmt's da ja bekanntlich sehr genau (was nicht abwertend gemeint ist). Vielleicht ist er nicht richtig terminiert oder sowas in der Art?

Ob die ADO-Abfrage so stimmt, kann ich leider nicht sagen, da hab ich keinen Dunst ;D  Wenn du dir dessen aber sicher bist, dann könnte es schon mit dem String-Typ in C++ zusammenhängen.

Viel Spaß noch beim Trainieren, ich schließe mich dann auch gleich an! ;D

greez 8)
JoSsiF

Thx!

Werde morgen mal mit Ruhe schauen, bringt jetzrt eh nix mehr...

Konzentrier mich dann jetzt doch lieber auf´s Training  ;D


Lieben Gruss!

Daddy

Meld mich bestimmt noch mal ^^  ;)

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Also ich würde gar nicht versuchen den kompletten Pfad in der Datenbank abzulegen...

Schreib doch in "Datei" nur den eigentlichen Namen (auch ohne Endung).
Mittels "SELECT datei FROM tabelle WHERE ..." holst du dir dann den Dateinamen.
Im eigentlichen Quellcode fügst du dann hinten die entsprechende Endung (.pdf) an den String und baust davor noch den eigentlichen Pfad (der ja hoffentlich für alle pdf's der selbe ist z.B. "c:\programme\myapp\pdf\" oder so  ;) )
Das starten vom Adobe Reader muss auch aus dem eigentlichen Quellcode heraus passieren, diesem gibst du dann den Dateinamen als Parameter mit.
Dein Gedanke, alla "ich hol mir mittels select die Datei, der Rest geht automatisch" wäre zwar sehr löblich, funzt so aber nicht  ;)


mfg
tremor4fun 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Natürlich wäre es besser, wenn der Pfad statisch wäre bzw. in irgendeiner anderen Form aus dem Programm hervorgehen würde. Aber es wäre trotzdem möglich, die Pfade zu speichern ;)


« Excel und Bilder VBasicdelphi 7 programme exportieren »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
C++
C++ ist eine von der ISO standardisierte Programmiersprache und eine erweiterte Form von C zur objektorientierten, generischen und prozeduralen Programmierung. Weitestgeh...

Applikation
Auch Anwendung: Siehe Application....

Datenbank
Eine Datenbank (DBS), im englischen database, ist eine strukturierte Datensammlung und fungiert wie ein "digitales Archiv". Datenbanken dienen der effizienten Aufbewahrun...