Hola, buenas tardes, alguien me puede explicar porque la forma de cargar una foto A lo hace perfecto y la B me error
A: oRS1Cli:ADDNEW()
oRs1Cli:Fields( "foto" ):Value := STRTOHEX( MEMOREAD( "foto.jpg"))
B: jj := STRTOHEX( MEMOREAD( "foto.jpg" ))
sqldetl = "INSERT INTO vehiculos_fotos ([Codigo],[foto]) VALUES ('" + xCodigo+ "', '" + jj + "')"
TRY
oCon:Execute( sqldetl )
oCon:Close() ; CATCH oErr
? sqldetl
Alert( "No puedo generar el presupuesto que supera lo 15 art. ", { " Seguir " }, "Atención" )
END TRY
El error que da: No se permite la conversión implícita del tipo de datos varchar(max) a varbinary(max). Utilice la función CONVERT para ejecutar esta consulta.
Saludos
Jorge.
Error sql server
- Rick Lipkin
- Posts: 2397
- Joined: Fri Oct 07, 2005 1:50 pm
- Location: Columbia, South Carolina USA
Re: Error sql server
Jorge
Make sure your Sql Field value in your table is VarBinary(max) There is an easier way of coding inserting pictures, files .. into a Sql VarBinary(max) field .. however this code works for me ..
Rao has a much simpler code to insert a document into a Sql Database .. the above always works for me .
Rick Lipkin
Make sure your Sql Field value in your table is VarBinary(max) There is an easier way of coding inserting pictures, files .. into a Sql VarBinary(max) field .. however this code works for me ..
Code: Select all
// open file //
nHANDLE := FOpen( cFILE )
IF FERROR() <> 0
SAYING := "Error reading file "+cFILE+CHR(10)
SAYING += " "+STR(FERROR())+CHR(10)
MsgInfo( SAYING )
oDLG:END()
RETURN(.F.)
ENDIF
// get number of bytes in file
nBYTES := FSEEK( nHANDLE, 0,2 )
// pad the buffer nBytes+1
cBUFFER := SPACE(nBYTES+1)
FSeek( nHANDLE, 0, 0 )
nBytesRead := FRead( nHANDLE, @cBuffer, nBytes )
FClose( nHANDLE )
if nBytesRead != nBytes
SAYING := "nBytesRead = "+str(nBYTESREAD)+CHR(10)
SAYING += "nBytes = "+str(nBYTES)+CHR(10)
SAYING += "Error Reading Data"+chr(10)
MsgInfo( saying )
oDLG:END()
RETURN ( .F. )
endif
cEID := _GenEid()
IF cEID = "BOGUS"
oDlg:End()
RETURN(.F.)
ENDIF
nDateTime := dtoc(date())//+" "+time()
oRsCh:AddNew()
oRsCh:Fields("doceid"):Value := cEID
oRsCH:Fields("TFormEid"):Value := cPROJECTEID
oRsCh:Fields("DImport"):Value := nDateTime
oRsCh:Fields("importby"):Value := xLOGIN
oRsCh:Fields("datalen"):Value := nBYTES
oRsCh:Fields("filename"):Value := cFILENAME
oRsCh:Fields("notes"):AppendChunk( VTArrayWrapper():New( 17, cBUFFER ) ) // ----------- inserts into "Notes" field which is a VarBinary(Max)
oRsCh:Update()
Rick Lipkin
-
- Posts: 35
- Joined: Tue Oct 11, 2016 1:02 pm
Re: Error sql server
Hola, gracias por responder, si a mí insertar un registro en un recordset me funciona bien, pero si quiero hacerlo por sentencia sql es donde me da el error.
Lo que quiero hacer es cargar las fotos en una tabla sin tener el recordset.
Saludos
Jorge
Lo que quiero hacer es cargar las fotos en una tabla sin tener el recordset.
Saludos
Jorge