| |
VB & DatenbankenAccess 2007 Datenbank - Anhangsfeld füllen mit Bildern | | | Autor: Cyberblade | Datum: 05.10.11 19:43 |
| Hallo zusammen,
ich bin grad dabei eine kleine Datenbankanwendung zu schreiben.
Software und DB:
- Access Datenbank 2007 (accdb)
- VB Version 6
Das Verbinden mit der DB funktioniert bestens via:
Verweise:
- MS Scripting Runtime
- MS Access 12.0 Object Library
- MS Office 12.0 Access Database enginge Object
Code:
- DBEngine.Workspaces(0)
- ws.OpenDatabase(dbfile) und auch das lesen / schreiben in die datenbank funktioniert bestens mit:
abfrage1 = "Update Tabelle set DB-Anhangsfeld = '" & bildpfad & "' where" & _
"Film_id = " & Tabelle.einLabel.Caption
rs = db.OpenRecordset(abfrage1) So und nun zu zu meinem Problem:
Wenn ich nun einen Datensatz erstellen will und dort eine Bilddatei (.jpg)
in ein Tabellenfeld vom Datentyp "Anhang" speichern möchte geht dies nicht.
Es kommt dann immer die FM:
"Eine Update- oder Delete Abfrage kann kein mehrwertiges Feld erhalten"
Was genau und wie kann ich dieses Anhangsfeld beschreiben? Habt ihr da eine Idee?
Muss der Bildpfad in die Variable oder die Bilddaten selbst?
Ich verzweifel grad daran, und alles googlen hat mich nicht weitergebracht und selbst eure Suchfunktion hat noch kein solches Thema. Naja jetzt schon
mfg blade | |
Re: Access 2007 Datenbank - Anhangsfeld füllen mit Bildern | | | Autor: wb-soft | Datum: 05.10.11 21:00 |
| Hi!
Konkret zu deiner Frage: Ich würde dir raten, nur den Pfad und den Dateinamen in der DB zu speichern.
Insgesamt scheint mir dein Ansatz verbesserungswürdig.
Schau dir ADO als Methode für den DB-Zugriff an. Und Statements mit "Update..." werden nicht zum Öffnen eines Recordsets verwendet.
mfg
WB | |
Re: Access 2007 Datenbank - Anhangsfeld füllen mit Bildern | | | Autor: Cyberblade | Datum: 05.10.11 21:36 |
| Hi
Nur den Pfad zu speichern will ich nicht. Und ob ich nun die Bilder auf der Festplatte in einem Ordner Speicher, wovon dann welche wegkommen können wenn man nicht aufpasst, oder mit in die DB schreibe kommt eigentlich fast aufs selbe raus.
Da das Frontend komplett aus VB besteht kann man hier auch die maximale Dateigröße angeben und diese dann zur Not auch noch auslesen, um unnützes aufblähen zu verhindern.
Das Statements mit Update keine ds erzeugen ist mir schon klar.
Das erste sql Statement legt einen ds an und das auch mit "INSERT INTO" und db.execute.
Wenn ich das Bild aber mit in die INSERT INTO Anweisung schreibe, bekomm ich nur eine FM die da sagt, dass mehrwertige Felder nicht mit anderen zusammen in eine INSERT INTO Anweisung hineindürfen.
Daher wollte ich dann hier den Umweg gehen und im Anschluss an den Insert ein Update drüberlaufen lassen in dem das Bild eingefügt wird.
Was wäre ein Vorteil von ADO? Im großen und ganzen funktioniert das auf die bisherige Weise ganz gut, bis auf das Bilder einfügen in ein Tabellenfeld mit Datentyp "Anhang"
Gruß
Blade | |
Re: Access 2007 Datenbank - Anhangsfeld füllen mit Bildern | | | Autor: wb-soft | Datum: 05.10.11 22:29 |
| Hi!
ADO hat ein flacheres Objektmodell, und ist mit einer Vielzahl von DBs einsetzbar.
Mit Datentyp "Anhang" meinst du vermutlich ein Feld vom Typ "Anlage". Dann hast du schlechte Karten.
Wenn du unbedingt die Bilder in der DB haben willst, nimm ein OLE-Feld oder scheib ein Byte-Array.
mfg
WB | |
Re: Access 2007 Datenbank - Anhangsfeld füllen mit Bildern | | | Autor: Cyberblade | Datum: 05.10.11 23:17 |
| Hi
ja ich mein "Anlage" als Datentyp. Schade wenn das so nicht geht. Dachte das hätte MS vielleicht schon mit implementiert.
Dann werd ich daraus wohl OLE Feld machen. Noch ist es ja früh genug da ich damit grad anfange und die DB dann noch ändern kann Oder ist ein Byte-Array sinnvoller? Hab leider noch nie Bilder in eine DB reingespeichert, von daher hab ich da kein Plan was sinnvoller oder besser ist...
Wie würde das denn aussehen wenn ich sowas in eine Tabelle schreiben will?
Gruß
Blade | |
Re: Access 2007 Datenbank - Anhangsfeld füllen mit Bildern | | | Autor: Cyberblade | Datum: 06.10.11 00:02 |
| Hi,
na dann werd ich mal schauen was ich zu ADO alles finden kann und auch was ich zu den Byte-Arrays finde. Das Codebeispiel für die Anlagen funktioniert aber auch.
Vielen Dank für deine späten Antworten (also zu so später Zeit noch)!
Gruß
Blade | |
Re: Access 2007 Datenbank - Anhangsfeld füllen mit Bildern | | | Autor: Franki | Datum: 06.10.11 02:55 |
| Hallo,
Zitat: | |
Was wäre ein Vorteil von ADO?
| |
Einer der Vorteile wäre, dass du dir die Verweise auf Access sparen könntest. Du schreibst ja deine Anwendung in VB6, durch die Verweise setzt du aber bei deinen Kundenrechnern ein vorhandenes Access voraus.
Das ist nicht notwendig, du kannst aus VB Anwendungen auch Access DBs verwenden ohne dass deine Kunden Access haben müssen.
Und je nachdem was du machst, funktioniert deine Anwendung auch mit jeder Version des Dateiformats welche es bei Access DBs ja so gibt. Alleine deswegn ist das mit dem OLE und den Bildern schon die bessere Wahl weil das auch ältere Versionen schon können.
Gruß,
Frank | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevDTA 3.0 Pro
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|