Pregunta: | 41091 - SQL SERVER Y DELPHI 5.O PARA INSERTAR IMAGENES |
Autor: | FABIAN ENRIQUE CAYAMBE ANDRADE |
TENGO UNA BASE DE DATOS HECHA EN SQL SERVER Y REALICE LA CONEXIÓN CON DELPHI 5.0 PERO EN UNA TABLA TENGO UN CAMPO TIPO IMAGEN EN SQL SERVER 2000 PERO EN DELPHI 5.0 ME DA PROBLEMAS AL INSERTAR Y ME APARECE EL MENSAJE DE NON-BLOB Y NO ME PERMITE REALIZAR NADA.
COMO PUEDO SOLUCIONAR ESTE PROBLEMA O QUE CAMPO PUEDO DEFINIR PARA EVITAR ESTO. |
Respuesta: | G Horner |
Yo he insertado imágenes en la base de datos, quizá no sea la mejor forma, pero a mi me funcionó:
{RutaIlustracion es una variable conteniendo la ruta de la imagen, este procedimiento inserta un registro en una tabla, incluyendo la imagen, el campo emb_foto es de tipo blob} var Stream: TAdoBlobStream; begin gxConeccion:=TAdoConnection.create(gxConeccion); gxConeccion.ConnectionString:=ConeccionBD; gxconeccion.LoginPrompt:=false; gxConeccion.open; rs_auxiliar:=TAdoDataSet.create(rs_auxiliar); rs_auxiliar.Connection:=gxConeccion; rs_auxiliar.commandtext:='select * from Tabla'; rs_auxiliar.Active:=true; rs_auxiliar.Insert; Stream:=TAdoBlobStream.Create(TBlobField(rs_auxiliar.fieldbyname('emb_foto')),bmwrite); Stream.LoadFromFile(RutaIlustracion); Stream.Free; rs_auxiliar.FieldByName('emb_keyemb').value:=trim(ClaveEmbobinado); rs_auxiliar.Fieldbyname('emb_palabras').value:=trim(Palabras); rs_auxiliar.Fieldbyname('emb_lectura').value:=trim(Lectura); rs_auxiliar.Fieldbyname('emb_fotocel').value:=trim(FotoCelda); rs_auxiliar.FieldByName('emb_ladimp').value:=trim(LadoImprimir); rs_auxiliar.Post; rs_auxiliar.Connection:=nil; rs_auxiliar:=nil; gxConeccion.close; gxConeccion:=nil; end; |