Mensaje
De
29/06/2001 06:03:12
 
 
a
Todos
General information
Foro:
Visual FoxPro
Category:
Cliente / Servidor
Título:
Image Data and ADO
Miscellaneous
ID de la conversación:
00525079
ID del mensaje:
00525079
Views:
50
I have read through all the past posts and have tried to do this in many ways.
None seem to work.

I need to read and write a file to the database using ADO.
Does anyone have code that will do this..

I tried to via the article on MSDN about reading data from a stream but it doesn't work (I placed a file in the DB using a DBC and trie dto read it out with this code and it failed!)

I also tried Vlad's suggestions but haven't got it to work.

I also read that get chunk does not work.

I am not keen on writing a VB DLL (can you pass a connection, I think I read you can't, cause I don't want two connections..)

I am using SQL Server 7 and ADO 2.6 with VFP 7.

My code right now (The saved image is corupt and the fecthed image is also corrupt so neither work!) looks like:

Table is OBLOBJS
OLEID CHAR 5
OLETYPE CHAR 3
OLEOBJ Image
**Save to db

	oConnection = CreateObject("adodb.connection")
	with oConnection
		.Provider = "SQLOLEDB.1"
		.ConnectionString = "Persist Security Info=False;Password=quest;User ID=quest;Data Source=TJM"
		.Open
	endwith
	
	oRecordSet = CreateObject("adodb.recordset")
	with oRecordSet 
		.ActiveConnection = oConnection
		.Source = "Select * From oleobjs"
		.CursorType = 3  	   &&Open Static Client default 0
		.LockType = 4		  &&Lock Batch Optistic  default 1
		.CursorLocation = 3   &&Client Side Cursor  default 2
		.Open
	endwith
	orecordset.AddNew
	orecordset.Fields("OLEID").value="12345"
	orecordset.Fields("OLETYPE").value="BMP"
	orecordset.Fields("OLEOBJ").appendchunk(FILETOSTR(GETFILE()))
	orecordset.updatebatch


*Get from db


 oConnection = CreateObject("adodb.connection")
	with oConnection
		.Provider = "SQLOLEDB.1"
		.ConnectionString = "Persist Security Info=False;Password=quest;User ID=quest;Data Source=TJM"
		.Open
	endwith
	
*!* Creates the RS
	oRecordSet = CreateObject("adodb.recordset")
	with oRecordSet 
		.ActiveConnection = oConnection
		.Source = "Select * From oleobjs"
		.CursorType = 3  	   &&Open Static Client default 0
		.LockType = 3		  &&Lock Batch Optistic  default 1
		.CursorLocation = 3   &&Client Side Cursor  default 2
		.Open
	endwith

	oADOStream = CREATEOBJECT("ADODB.Stream")
	oADOStream.TYPE = 1	&& 1=Binary Data, 2=Text Data.
	oADOStream.OPEN

	oADOStream.WRITE(oRecordSet.FIELDS("oleobj")) 	&& Pass data to the stream object.
	lcImageName = "c:\fromdb."+oRecordset.fields("oletype").value
	oADOStream.SaveToFile(lcImageName,2)         	&& Saves stream object to a file.
Unfortunatly giving up is not an option this has to work somehow!
Any help will be greatly appreciated..My prefered method would be using getchunk and appendchunk...
Next
Responder
Mapa
Ver