| Autor |
Beitrag |
foxy
      
Beiträge: 814
Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
|
Verfasst: Mo 20.01.03 11:43
Boa als langsam bin ich am verzweifeln wer hätte gedacht das DB's so kompliziert sind
naja zu meiner Frage also :
Also ich hab in meiner Datenbank einmal eine Spalte für Bilder(Graphic) und einmal für alle anderen Datein(blob), so
1. Frag wie kann ich sagen, wenn ich einen neuen Datensatz mache, dieser fertig editiert ist, dann mit einem opendialog eine datei in ein DBlistbox einfüge, das wenn ich dann auf meinen Navigator drücke, das dann auch der Inhalt der Listbox eingefügt wird ?
2. Ich habe folgenden Code
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.DBGrid1DblClick(Sender: TObject); begin if FileExists(Table1.FieldbyName('BMP').AsString) then Begin Form4.Show; end else If FileExists(Table1.FieldByName('Datei').AsString) then Begin GetExe(ExtractFileExt(OpenDialog1.FileName)); end; end; |
so der überprüft, ob eine Datei vorhanden ist in den Feldern klar iss an diesem code was falsch, oder mach ich was falsch beim einlagern????
weil er erkennt nich das eine Datei existiert... bitte um hilfe 
_________________ "Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Mo 20.01.03 13:21
Hi,
jetzt geht das schon wieder los. Wie kann man nur innerhalb von 14 Minuten eine Frage zu einem Problem 2mal unterschiedlich stellen und in 2 verschiedenen Foren schreiben
Hier steht schon eine Antwort von mir, die Dir aber nicht viel helfen wird. Das habe ich vor dem hier gesehen. Auch für alle, die wissen wollen, was der vorhat :
Ich mache jetzt Mittag, in 10 Min. wirst Du sowieso nicht fertig.
www.delphipraxis.net/viewtopic.php?t=2605
Gruß
Hansa
|
|
foxy 
      
Beiträge: 814
Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
|
Verfasst: Mo 20.01.03 13:24
hansa ich poste das in 2 foren 1. weils dringend ist, 2. weil ich unterschiedliche anregungen erhalte und somit vielleicht das besser auswählen kann ....
_________________ "Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Mo 20.01.03 13:38
Hi,
das da gibts doch nicht  , nun gut Du hast es so gewollt. Dann kriegst Du eben hier die Antwort, auf die Frage von der Antwort sonstwo. Und damit zum Schluß keine Antwort mehr kommt, weil keiner mehr durchblickt. Und ich bin erst heute abend wieder da. Außerdem wird das mir langsam zu blöd. Die DB soll doch nur den Filename speichern oder nicht? Anhand dieses Namens mußt Du diese Grafik dann doch wohl mit LoadFromFile oder so erst laden, um sie zu sehen. Jetzt würde ich gerne noch etwas nachsehen, aber scrollen kann ich nicht, weil Dein ausführlicherer Quelltext woanders steht.  Also kann ich Dir nicht mehr schreiben, bin jetzt vorerst weg.
Gruß
Hansa
|
|
foxy 
      
Beiträge: 814
Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
|
Verfasst: Mo 20.01.03 14:09
 ich komm immer noch nich weiter
_________________ "Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Mo 20.01.03 19:50
Hi foxy,
kein Wunder. 1 + 1 ist in diesem Fall eben nicht 2 sondern nur ca. 1,6 im Minutentakt nur 1.3 Du kriegst nur Teilantworten, die Dir nicht weiterhelfen. Also : willst Du nun das Bild selber in der DB haben, oder den Dateinamen ? Mit den Blob-Feldern, das war schon der richtige Ansatz, aber da gibt es schon Varianten.
Gruß
Hansa
|
|
foxy 
      
Beiträge: 814
Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
|
Verfasst: Di 21.01.03 09:05
das ist mir relativ egal .... würde gerne mal beide Methoden austesten, einmal mit dem Pfad der Datei, weil ich die sowiso in einem Ordner Spreichere,
2. mal versuchen die komplette Datei, da ich aber nich weis wieviel resourcen das kostet würde ich gerne mal beide ausprobieren, nur ich komm wirklich nicht weiter gestern schon google durchforstet.... tut durchgeschat da iss alles wunderbar erklärt, wie man Db's aufbaut aber sehr wenig mit datein, unn das was da iss das hilft mir ehrlichgesagt nicht sehr weiter, weil ich mich mit DB noch nich so viel befasst habe, das hier iss meine erste DB ... von daher 
_________________ "Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Di 21.01.03 09:18
Hi,
Da steht ziemlich genau drin, was Du machen mußt:
www.dclp-faq.de/q/q-db-blob.html
Um es vorwegzunehmen : Speichere nur den Pfad ! Was machst Du jetzt wieder mit Google ? Wahrscheinlich auch nur Hichhack.  Ich habe Blob und Datenbank eingegeben und schon hatte ich diesen Artikel an erster Stelle.
Gruß
Hansa
|
|
foxy 
      
Beiträge: 814
Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
|
Verfasst: Di 21.01.03 09:39
da müsste ich ja mit mysql arbeiten  unn noch schlimer php .... boa muss ich mich ma durchackern
_________________ "Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Di 21.01.03 09:51
Wieso MySQL? Lasse das My weg und dann siehst Du was Du brauchst! Wenn Du sowieso noch keine DB gemacht hast, dann fang lieber gleich richtig an. Also ich verwende Interbase.
Gruß
Hansa
|
|
foxy 
      
Beiträge: 814
Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
|
Verfasst: Di 21.01.03 09:56
Vorteile <-> NAchteile??
Interbase sind das nich andere Befehle??
ausserdem hab ich ja die DB fast fertig  also fhelt eben nur noch das ... boa ich verzweifele bald der eine sagt jaja nimm SQL der andere nene Paradox iss scho ok du nu Interbase .... *ausflipp* .... *meinen_cheff_tothau*
nene iss nur so das ich scho relativ weit bin und nich alles umodeln will weil ich nun komplett anderen DatenbankTyp verwende
_________________ "Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Di 21.01.03 10:45
Typisch !  Woanders lese ich gerade, daß Du Dich entschlossen hast, nur den Dateinamen zu verwenden. Ja dann mach das doch so und Basta. Das geht auch mit Paradox. Brauchst Du aber irgendwann mal ein Netztwerk, dann nimm SQL und lass die Finger von Anfang an von Paradox. Da wäre unter anderem Interbase geeignet. Natürlich kannst Du auch Oracle verwenden. Kapiert
Gruß
Hansa
|
|
foxy 
      
Beiträge: 814
Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
|
Verfasst: Di 21.01.03 11:03
japp thx für deine hilfe .... war grad in puase  .... ja netzwerk mach ich mir immoment noch keine gedanken ... aber wenns soweit iss werd ich wohl wieder ne topic eröffnen
ja ich verwende nur den pfad, den speichere ich doch nur als string ab oder?? unn dann öffne ich den per doppelklick.... hoffe mal das funzt alles so wie ich das vorhabe wenn nich suche ich ma weiter oder poste fleissig
thx bis denne
_________________ "Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Di 21.01.03 11:29
so ungefähr mußt Du das machen :
Quelltext 1: 2: 3: 4: 5:
| procedure TLiefStamm.DBEdit14DblClick(Sender: TObject); begin WaveAbspielen ('\WINNT\Media\Utopia Windows starten.WAV'); ShellExecute(0, 'open',PChar('http://'+DBEdit14.Text) , nil, nil, SW_SHOW); end; |
hier habe ich ein DBeditFeld. In dieses kann die Internet-Adresse (in diesem Beispiel von einem Lieferanten) eingegeben werden. Will der User dessen Seite besuchen braucht er nur auf die Adresse doppelt zu clicken und schon startet der Browser mit dieser Seite. Da das meist ein paar Sek. dauert kriegt er noch ein kleines Liedchen vorgespielt, damit er merkt das was passiert.
Wahrscheinlich brauchst Du nicht mal das ShellExecute für ein externes Programm, in Delphi gibt es bestimmt so was wie LoadBMPfromFile für Deine Bildchen. Weiß aber nichts genaues. Wenn Du brav bist und Dich schickst hilft Dir da bestimmt jemand anderes.  Du must Dir ein geeignetes Event suchen, wie ich hier z.B. einen DoubleClick. OnExit wäre ja wohl nix. Wenn Du noch Fragen hierzu hast, dann stelle sie aber jetzt hier, ich schreib den Text nämlich nicht noch in 10 Foren.
Gruß
Hansa
P.S.: Hier noch der Code für das Liedchen, das ist doch eher mit dem zu vergleichen, was Du mit dem Bild machen mußt:
Quelltext 1: 2: 3: 4: 5: 6:
| PROCEDURE WaveAbspielen (DateiName : string); VAR flag : byte; BEGIN flag:=SND_ASYNC; sndPlaySound(PChar (DateiName), Flag); END; |
|
|
foxy 
      
Beiträge: 814
Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
|
Verfasst: Di 21.01.03 11:59
ich rbauch die Dblclick Prozedure , weil der Pfad in nem DBgrid gespeichert iss unn ich will das machen, wenn man auf die zeile doppelklick macht das eben dann diese datei geöffnet wird. Bin aber schon nahe an der Lösung  ... es öffnet sich schonma der winexplorer 
_________________ "Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
|
|
kiwicht
      
Beiträge: 1021
Win 7, MacOS
Delphi x, VBA, PHP, ...
|
Verfasst: Mo 10.02.03 13:14
hiho...
erstmal eins, wenn du blobs nicht unbedingt brauchst, dann lass die finger weg, so wie ich
denn was soll es dir bringen, wenn du die bilder komplett in deiner db speicherst, wenn du sie sowieso irgendwo auf platte hast?
so, und jetzt gibts noch ne schöne quer-zurück-chaos-verknüpfung, weil ich ein ähnliches prob hatte, hoffe das hilft dir weiter...
www.delphi-forum.de/...=6994&highlight=
mfg
kiwicht
|
|
foxy 
      
Beiträge: 814
Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
|
Verfasst: Mo 10.02.03 13:24
hui
die iss aber alt
ich hab das schon lange gelöst, indem ich in meinen Datensatz eben nur den Pfad gespeichert habe und dann diese datei mit Hilfe von ShellExecute aufgerufen habe .... aber eins macht mir noch zu denken 2 oder z.b. 10 dateien in einem datensatz d.h. da müsste ich ja ein array machen 
_________________ "Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Mo 10.02.03 13:50
| foxy hat folgendes geschrieben: | .... aber eins macht mir noch zu denken 2 oder z.b. 10 dateien in einem datensatz d.h. da müsste ich ja ein array machen  |
Was willst Du denn damit ?
Quelltext 1:
| Ein Array [1..10] of filename |
So was in der Art und was willst Du damit bezwecken ? haha, wird das wieder toll.  Bevor Du mit dem Unfug anfängst empfehle ich Dir das hier zu lesen :
www.delphi-forum.de/...=4379&highlight=
Gruß
Hansa
|
|
foxy 
      
Beiträge: 814
Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
|
Verfasst: Mo 10.02.03 14:06
hui
das war aber lang ... da ich eigentlich nicht schlau daraus geworden bin  ... nnur soviel verstanden das es unnötig ist ein array zu machen
hast du das nun irgendwie gelöst, oder verwendest du einfach mehrere Spalten??
_________________ "Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Mo 10.02.03 14:32
| foxy hat folgendes geschrieben: |
das war aber lang ... oder verwendest du einfach mehrere Spalten?? |
Von wegen lang hier gings los :
"SQL und Arrays", nicht zu verwechseln mit "Arrays und SQL"
@Admin: der Beitrag ist einfach nicht mehr zu finden. Heute morgen habe ich ihn noch gesehen.
Ja ich verwende mehrere Spalten, das hat mir eingebrockt, daß ich an einer Stelle statt 4 ARRAY [1..12] dann 48 Einzelfelder hab. Das ist aber im Grunde nur ein Schönheitsfehler. Aus 2 Gründen benutze ich die Einzelfelder, obwohl es mit Arrays schon geht, aber es bringt nichts.
1. Programm hatte ich sowieso schon auf Einzelfelder umgestellt (never change a rznning System)
2. Entscheidend war letztlich folgende Überlegung : an die DB werden sowieso Strings übergeben. Angenommen ich brauche den Umsatz vom Januar. Das wäre dann im select als umsatz[1] bei Arrays einzubauen, so baue ich umsatz1 ein. Um das ganze etwas zu vereinfachen, habe ich eine Funktion gebastelt :
Quelltext 1: 2: 3: 4:
| FUNCTION SelectFeld (Feldname : string;m : MonatsZahl) : string; BEGIN SelectFeld := Feldname+IntToStr (m); END; |
Das wars dann schon.
Gruß
Hansa
|
|
|