Visual Basic.NET - problemas con blob de oracle en net

 
Vista:

problemas con blob de oracle en net

Publicado por victor rincon (1 intervención) el 24/11/2006 23:04:22
hola
necesito grabar imagenes en oracle 8 en blob

con esto creo la tabla

create table tbdetimag
(
iregistro NUMBER(11,2) PRIMARY KEY,
referencia VARCHAR2(15),
tipo VARCHAR2(50),
clase NUMBER(1,0),
fisico NUMBER(1,0),
passw NUMBER(1,0),
passwu VARCHAR2(15),
ruta VARCHAR2(255),
gima blob,
dbcap VARCHAR2(6),
dbfechmod DATE,
dbacap VARCHAR2(6),
dbafechmod DATE
)

el indice asi

create index refer on tbdetimag (referencia asc)

y la sequuencia asi

create sequence iregistro minvalue 1 maxvalue 9999999999999999999999999 start with 1 increment by 1

ya en el programa en tengo el siguiente codigo como oledb

Dim cn As New OleDbConnection("Provider=MSDAORA.1;Password=USR3TRESS-1;User ID=tress_app;Data Source=PAPPSJRZ;Persist Security Info=True")
Dim cmd As New OleDbCommand("UPDATE TBDETIMAG SET GIMA=FOTO, FISICO=2 WHERE IREGISTRO = 37 ", cn)
Dim fs As New System.IO.FileStream("C:\DISCORIG\SUNSET.JPG", IO.FileMode.Open, IO.FileAccess.Read)
Dim b(fs.Length() - 1) As Byte
fs.Read(b, 0, b.Length)
fs.Close()
Dim P As New OleDbParameter("FOTO", OleDbType.LongVarBinary, b.Length, ParameterDirection.Input, False, 0, 0, Nothing, DataRowVersion.Current, b)
cmd.Parameters.Add(P)
cn.Open()
Try
cmd.ExecuteNonQuery()
Catch EX As Exception
MsgBox(EX.Message)
End Try
cn.Close()

o con cliente de oracle es asi

Dim cn As New OracleConnection("Password=USR3TRESS-1;User ID=tress_app;Data Source=PAPPSJRZ;Persist Security Info=True")
Dim cmd As New OracleCommand("UPDATE TBDETIMAG SET GIMA = foto WHERE IREGISTRO=36", cn)
Dim fs As New System.IO.FileStream("C:\DISCORIG\SUNSET.JPG", IO.FileMode.Open, IO.FileAccess.Read)
Try
Dim b(fs.Length() - 1) As Byte
fs.Read(b, 0, b.Length)
fs.Close()
Dim p As New OracleParameter("foto", OracleType.Number)
p.Size = b.Length
p.Value = b
' Dim P As New OracleParameter("@Picture", OracleType.Blob, b.Length, ParameterDirection.Input, False, 0, 0, Nothing, DataRowVersion.Current, b)
cmd.Parameters.Add(p)
cn.Open()
cmd.ExecuteNonQuery()
Catch EX As Exception
MsgBox(EX.Message)
End Try
cn.Close()



En la primera opcion graba el campo de fisico pero el blob lo deja nullo

en la segunda me marca el siguiente error

ora-01036 illegal variable/number

esto ya lo probe con MSsql y si funciona que estoy haciendo mal


saludos

vrincon
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder