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
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


0