Toon posts:

[VB] Foto in database

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo allemaal,

Kan iemand mij helpen met het volgende probleem (pje)

Ik wil graag foto's in een access database plaatsten. Hiervoor heb ik een binary veld gereserveerd in de DB.

Ik maak verbinding middels ado en ik gebruik recordsets voor data overdracht.

Ik weet dat het iets met GetChunck en AppendChunck moet zijn.

Ik wil een file "Foto.jpg" in de database plaatsen.

Later wil ik de foto weer in een bestand zetten.

Wie heeft hier toevallig een stukje voorbeeldcode van.

MVG Kinglois

  • BOOTZ
  • Registratie: Maart 2001
  • Laatst online: 15-09 09:35
ik heb hier geen ervaring mee, maar kan je niet gewoon die foto byte voor byte uitlezen en dat naar je database slingeren?

Maak je eigen poll


  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

kun je niet gewoon de foto op je schijf laten staan en een link ernaar maken in je db? :) (t pad en de filenaam dus)

disjfa - disj·fa (meneer)
disjfa.nl


Verwijderd

Op donderdag 03 januari 2002 19:37 schreef disjfa het volgende:
kun je niet gewoon de foto op je schijf laten staan en een link ernaar maken in je db? :) (t pad en de filenaam dus)
wou 'k net zeggen.
da's toch veel sneller en gemakkelijker.. ?

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:11

Crazy D

I think we should take a look.

AppendChunk method
Zelfs netjes met voorbeeld"
AppendChunk and GetChunk Methods Example (VB)
Volgende keer zelf even kijken in MSDN, ok? ;)
:)

Exact expert nodig?


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op donderdag 03 januari 2002 14:26 schreef KingLois het volgende:
Hallo allemaal,
[...]
MVG Kinglois
Een reactie uit je vorige topic:
Op vrijdag 28 december 2001 11:49 schreef wasigh het volgende:
[...]Je naam onder je post hoeft niet, zie daarvoor de faq ;)
FYI: De moderators zullen je op den duur niet zo aardig meer vinden als ze je moeten blijven waarschuwen ervoor.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 15-09 11:04

Basszje

Reisvaap!]

Lijkt me idd totaal niet handig. Een grote file met al je zooi erin . Als dat een keer crasht dan ben je de lul.

Bovendien wordt ie niet langzamer van een grote database file?

Ik zou het idd ook gewoon los bewaren. E.v. met een dynamisch pad.

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Probleem wat je met losse bestanden krijgt is het beheer aspect.

Tevens zijn teveel bestanden in 1 directory absoluut niet efficient.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:11

Crazy D

I think we should take a look.

Tjah, ik denk dat alles in 1 db proppen z'n voor en z'n nadelen heeft. Bij Access zou ik 't zeker in een losse dir stoppen i.p.v. in de Access db. Maar bij 'echte' db's kan het zeker wel handig zijn. En crashen gaan we natuurlijk niet van uit :) Daar heb je *kuch*back ups*kuch* voor :)

Exact expert nodig?


Verwijderd

en?....wat wordt het nou.. :?

Verwijderd

Topicstarter
Bedankt allemaal voor jullie reacties.

Ik denk dat ik er met het voorbeeld uit de MSDN wel uitkom. Ik heb wel een MSDN library met de uitleg zoals dat met DAO ging maar niet die van ADO. Stom van me want die had ik ook op internet kunnen vinden.

De reden dat ik dit zo wil doen is omdat de foto's uiteindelijk op een server terecht moeten komen. Als ik ze lokaal opsla dan staan ze niet centraal.

Het is ten behoeve van een internet applicatie.

MVG
KingLois

  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

Op donderdag 10 januari 2002 18:53 schreef KingLois het volgende:
De reden dat ik dit zo wil doen is omdat de foto's uiteindelijk op een server terecht moeten komen. Als ik ze lokaal opsla dan staan ze niet centraal.
dus uploaden op een dynamisch pad :? :)

disjfa - disj·fa (meneer)
disjfa.nl


  • thijsc
  • Registratie: Augustus 2000
  • Laatst online: 22-12-2023
Ik zou zoiets zeker niet doen in access.

Mijn ervaring is dat access databases van meer als een paar MB erg traag worden.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22:22

mulder

ik spuug op het trottoir

Op donderdag 03 januari 2002 21:42 schreef The - DDD het volgende:
Probleem wat je met losse bestanden krijgt is het beheer aspect.

Tevens zijn teveel bestanden in 1 directory absoluut niet efficient.
Groeper files, maak een aparte directory aan voor elke file.

Een grote logge db is helemaal niet efficient.

oogjes open, snaveltjes dicht


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22:22

mulder

ik spuug op het trottoir

Op donderdag 10 januari 2002 19:17 schreef thijsc het volgende:
Ik zou zoiets zeker niet doen in access.

Mijn ervaring is dat access databases van meer als een paar MB erg traag worden.
Mijne niet, heb db's van meer dan 100 mb goed zien performen.

oogjes open, snaveltjes dicht


Verwijderd

Op donderdag 10 januari 2002 18:53 schreef KingLois het volgende:
...

MVG
KingLois
tis nu al een keer gezegd en je negeert het gewoon :(

NIET GROETEN ONDER EEN POST!

sommige mensen gaan zich eraan ergeren :(

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op donderdag 10 januari 2002 19:44 schreef Schum1 het volgende:
[..]
tis nu al een keer gezegd en je negeert het gewoon :(
NIET GROETEN ONDER EEN POST!
sommige mensen gaan zich eraan ergeren :(
Het is al vaker gezegd tegen hem, ook door een moderator. Hij leest er gewoon overheen, wilt er niet van leren, betekent ook dat ik hem niets gaat leren over databases e.d. vandaar ook geen echt antwoord op zijn vraag van mij behalve dat het erg dom is om de foto's zelf in de database te stoppen, omdat de database er trager van wordt.)

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Topicstarter
Het is inderdaad heel erg STOM van me om te groeten onder een post. Mijn beleefdheid wordt kennelijk niet op prijs gesteld. Ik wil dit forum gebruiken om wat wijzer te worden. En eventueel waar ik kan ook andere forum gebruikers te helpen. Mijn intentie lijkt me dus goed.

Ik wordt echter niet goed van al die regeltjes die steeds uitgelegd worden.

Er is maar een enkeling die de topic die ik gestart ben met serieuze opmerkingen aanvult. Het is alleen maar zeiken over dat ik niet mag groeten, en dat het te traag wordt met fotos in den DB.

Mijn vraag was duidelijk HOE!!!

Kennelijk is er niemand die me daar mee kan of wil helpen. Laat ze dan allemaal hun ... houden. Geef een zinnig antwoord of lees verder in andere topics waar je misschien een zinnig antwoord kan geven.

Begrijp me niet verkeerd hoor. Als iemand zegt dat de database daar traag van wordt vind ik dat een zinnig antwoord. Dat kan ik me helemaal voorstellen. Maar vervolgens gaat de discussie alleen nog maar daar over.

Ik hoop in de toekomst dit forum op een goede manier te kunnen gebruiken. En ik zal rekening houden met de regels. Als ik iets verkeerd doe dan zal ik dat van een moderator best wel te horen krijgen. Ik ben hier nog niet zo lang en moet misschien nog wel wat leren.

Maar stoppen met ...... AUB.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Op vrijdag 11 januari 2002 12:47 schreef KingLois het volgende:
Het is inderdaad heel erg STOM van me om te groeten onder een post. Mijn beleefdheid wordt kennelijk niet op prijs gesteld. Ik wil dit forum gebruiken om wat wijzer te worden. En eventueel waar ik kan ook andere forum gebruikers te helpen. Mijn intentie lijkt me dus goed.
Lijkt me ook niks mis mee
Ik wordt echter niet goed van al die regeltjes die steeds uitgelegd worden.
Als je je er gelijk aan houd, hoeft het niet steeds weer uitgelegd te worden :).
Er is maar een enkeling die de topic die ik gestart ben met serieuze opmerkingen aanvult. Het is alleen maar zeiken over dat ik niet mag groeten, en dat het te traag wordt met fotos in den DB.

Mijn vraag was duidelijk HOE!!!
Programmeren is niet alleen een oplossing vinden voor je probleem, maar ook het evalueren van doplossing, en of er mischien niet betere oplossingen zijn. Het probleem dat jij hier aanstipt is al heel vaak langs geweest, en er zijn heftige discussies uit ontstaan (in DB vs FS) maar uiteindelijk blijkt in de meeste gevallen de FS oplossing de betere te zijn.
Kennelijk is er niemand die me daar mee kan of wil helpen. Laat ze dan allemaal hun ... houden. Geef een zinnig antwoord of lees verder in andere topics waar je misschien een zinnig antwoord kan geven.
De antwoorden (op die groet onder post berichten na) zijn juist erg behulpzaaam. Ze gaan zelfs al een stap verder dan waar jij nu bent. Er is al een antwoord gegeven over hoe je het in de DB zet, maar ondertussen zijn de mensen hier al bezig om je over te halen tot een nog betere oplossing. maw.. we zijn behulpzamer dan je denkt :).
[qoute]
Begrijp me niet verkeerd hoor. Als iemand zegt dat de database daar traag van wordt vind ik dat een zinnig antwoord. Dat kan ik me helemaal voorstellen. Maar vervolgens gaat de discussie alleen nog maar daar over.
[/quote]
Niks mis met je goede discussie toch? Het heeft toch nog steeds met je onderwerp te maken.
Ik hoop in de toekomst dit forum op een goede manier te kunnen gebruiken. En ik zal rekening houden met de regels. Als ik iets verkeerd doe dan zal ik dat van een moderator best wel te horen krijgen. Ik ben hier nog niet zo lang en moet misschien nog wel wat leren.
Wie niet :)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Bedankt voor nog een reactie.

Het resultaat is echter dat ik nog niet weet HOE

Ik vrees dat ik maar een boek ga kopen.

En nu had ik bijna weer gegroet

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:11

Crazy D

I think we should take a look.

Op vrijdag 11 januari 2002 13:14 schreef KingLois het volgende:
Het resultaat is echter dat ik nog niet weet HOE
Ik quote mijzelf nog even:
Op donderdag 03 januari 2002 20:38 schreef Crazy_D het volgende:
AppendChunk method
Zelfs netjes met voorbeeld"
AppendChunk and GetChunk Methods Example (VB)
Volgende keer zelf even kijken in MSDN, ok? ;)
:)
Het enigste wat je van die link even moet aanpassen is dat je naar file output i.p.v. naar de database. Maar binaire data naar file sturen is niet het meest moeilijke dacht ik zo.
Ik vrees dat ik maar een boek ga kopen.
Daar is op zich niks mis mee :)
En nu had ik bijna weer gegroet
Groetjes :+

Exact expert nodig?


Verwijderd

Op vrijdag 11 januari 2002 13:14 schreef KingLois het volgende:
Bedankt voor nog een reactie.

Het resultaat is echter dat ik nog niet weet HOE

Ik vrees dat ik maar een boek ga kopen.

En nu had ik bijna weer gegroet
Een boek is natuurlijk nooit verkeerd!

Maar om op je vraag terug te komen. Ga je met behulp van een DB-aware control je DB vullen, dan hoef je hier namelijk geen rekening mee te houden.

Wil je Access SQL queries gebruiken dan kom je niet om de Chunks heen tenzij je een verwijzing gebruikt naar FS.

Niet alleen een Access database wordt er supertraag en inconsistent van, SQL Server heeft last van hetzelfde probleem en ik denk iedere DB.

Verschillende keren heb ik meegemaakt dat door het gebruik van blob's als plaatjes en Word docs een Access database de soep indraait. Enigste remedie toen was een repair database, maar natuurlijk weet je dan niet precies hoe consistent je data nog is (zulke zaken probeer ik ten alle tijde te voorkomen).

Verwijderd

Topicstarter
[quote]Op vrijdag 11 januari 2002 13:48 schreef CrazyD_at_work het volgende:

[..]Het enigste wat je van die link even moet aanpassen is dat je naar file output i.p.v. naar de database. Maar binaire data naar file sturen is niet het meest moeilijke dacht ik zo.
[..]

Inderdaad bedankt voor je reactie. Het is me gelukt om de data in de database te krijgen. Alleen bij het uitlezen ervan en terug schrijven naar een file gaat het mis.

----------------------------------------------------
CODE
----------------------------------------------------

Public Function GetBlob(ipField As ADODB.Field, ipTargetFileName As String) As Boolean

Dim lvlOffset As Long
Dim lvlFileSize As Long
Dim lvByteChunk As Variant



On Error GoTo ERRORHANDLER
Open ipTargetFileName For Binary As #1


lvlFileSize = ipField.ActualSize
lvlOffset = 0
Do While lvlOffset < lvlFileSize

lvByteChunk = ipField.GetChunk(PakketGrootte)
Put #1, , lvByteChunk
lvlOffset = lvlOffset + PakketGrootte

Loop

Close #1
GetBlob = True
Exit Function

ERRORHANDLER:
GetBlob = False
End Function


--------------------------------------------------------
/CODE
---------------------------------------------------------

Het gaat fout bij het wegschrijven naar het bestand:
Bij de regel:
Put #1, ,LvByteChunk

Moet ik hier wel Put gebruiken??
Misschien het bestand anders openen ??

Wie kent het probleem.

Ik heb het ook al geprobeerd met een tekstfile. De tekst staat dan wel in het copy maar met een hoop troep er tussendoor.

Het lijkt wel of dat ook de informatie over het type van lvByteChunk wordt opgeslagen.

Verwijderd

Waarom die 2e , in "Put #1, , "? Lijkt me namelijk dat er dan iets als een delimiter naar de file geschreven wordt die je niet wilt.
Misschien kun je het proberen met write #1 of print #1, lvByteChunk; (; niet vergeten)
Kweenie of het lukt/werkt/mogelijk is/bestaat, maar je kan 't proberen.

Verwijderd

Op donderdag 10 januari 2002 22:54 schreef dusty het volgende:

[..]

Het is al vaker gezegd tegen hem, ook door een moderator. Hij leest er gewoon overheen, wilt er niet van leren, betekent ook dat ik hem niets gaat leren over databases e.d. vandaar ook geen echt antwoord op zijn vraag van mij behalve dat het erg dom is om de foto's zelf in de database te stoppen, omdat de database er trager van wordt.)
Sjongejonge beetje lame hoor heren... Als je je daar al druk om maakt... Er zijn belangrijkere dingen...

btw moet ik even voor je uitrekenen hoeveel bytes het woord 'groetjes ' in de database oplevert? Iig minder dan jouw reply >:)

Verwijderd

Ehm... ik zou het zo doen, eerst maak je van het binaire bestand ( plaatje ) een string:

Open strDoelBestand For Binary As #1

strDoelString = Space(LOF(1))
Get #1, , strDoelString

Close #1


Vervolgens schrijf ik het gewoon naar een TEXT veld in mijn database:


rsRecordset!Veldnaam = strDoelString
rsRecordset.update


Zo zou ik het in elk geval doen... ehm... zo heb ik het zelfs gedaan, en het werkt ( is dan wel een SQL server 7 database ). Om het stringveld weer naar een bestand om te zetten:


Open "Bestandsnaam" For Binary As #1

Put #1, , CStr(rsRecordset!Binairveld)

Close #1

rsRecordset.Close
Set rsRecordset = Nothing



Hoop dat ik hier wat zinnigs posten, succes ermee.

Verwijderd

Op vrijdag 11 januari 2002 16:46 schreef apottjewijd het volgende:
Ehm... ik zou het zo doen, eerst maak je van het binaire bestand ( plaatje ) een string:

Open strDoelBestand For Binary As #1

strDoelString = Space(LOF(1))
Get #1, , strDoelString

Close #1


Vervolgens schrijf ik het gewoon naar een TEXT veld in mijn database:


rsRecordset!Veldnaam = strDoelString
rsRecordset.update


Zo zou ik het in elk geval doen... ehm... zo heb ik het zelfs gedaan, en het werkt ( is dan wel een SQL server 7 database ). Om het stringveld weer naar een bestand om te zetten:


Open "Bestandsnaam" For Binary As #1

Put #1, , CStr(rsRecordset!Binairveld)

Close #1

rsRecordset.Close
Set rsRecordset = Nothing



Hoop dat ik hier wat zinnigs posten, succes ermee.
Dan heb je bijzonder veel geluk als dit werkt!

Vaak genoeg meegemaakt dat zo'n manier absoluut niet werkt (translations op ASCII >127).

Verwijderd

Voor mij werkt een OLE object in combinatie met ADO(DB) perfect voo dit soort gespulte. Misschien het proberen waard.

Verwijderd

Op donderdag 17 januari 2002 16:43 schreef hvdberg het volgende:

[..]

Dan heb je bijzonder veel geluk als dit werkt!

Vaak genoeg meegemaakt dat zo'n manier absoluut niet werkt (translations op ASCII >127).
Met SQL Server 7 is het in elk geval geen enkel probleem *D en als iets het doet gaan we natuurlijk niet naar andere oplossingen zoeken... Wij hadden hier juist veel problemen met de velden die wel voor grafische opslag waren 'bedoeld'.
Pagina: 1