Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-09-2013
Yomarcol Yomarcol is offline
Registrado
NULL
 
Registrado: abr 2013
Posts: 3
Poder: 0
Yomarcol Va por buen camino
acceso lectura CLOB/BLOB

hola a todos:

Estoy programando una aplicación en Delphi 5 en la que he acceder a un blob mediante componentes TOCIQUery. Uso Delphi 5 y el driver de Oracle SqlORA32.dll.

Tengo una tabla que tiene un campo CLOB_INI (tipo CLOB) que contiene un ini para una aplicación. En principio, revisando este foro, encontré el modo de leer y escribir, pero no sé por qué, a la hora de leer el campo, aparece un error ORA-3123: La operación se bloquearía.

Esto hace que no pueda descargar el ini ni poderlo manejar. el procedure que utilizo es éste (hay cosas comentada porque he querido verificar que realmente accedía a la bbdd y encontraba al menos un registro).

Si he puesto algo incorrecto, por favor decírmelo (tanto en el mensaje como en el código en sí...)

Saludos y gracias adelantadas

Código Delphi [-]
procedure LeerIni(mi_ini:TStream);
var
 Qry : TOCIQuery;
 tmp_ini:TStream;
 MS: TMemoryStream;
 BlobField: TField;
 blob: TBlobStream;



begin

 Qry := TOCIQuery.Create(nil);
 MS := TMemoryStream.Create;



 try

  Qry.DatabaseName := dmSql.DatabaseBLOB.DatabaseName;
  Qry.SQL.Add('SELECT *');
  Qry.SQL.Add(' FROM TABLA_INI');
  Qry.SQL.Add(' WHERE NOM_INI= ''fichero_ini'' ');
  try
        Qry.Open;
        except
        on e:exception do
                begin
                ShowMessage('Error cargando ini de BBDD: ' + e.Message);
                end;
        end;
 { qry.SQL.SaveToFile('c:/query1.txt');

  if Qry.RecordCount >0
  then Showmessage('hay un registro');}

 with Qry do
 begin
  tmp_ini := CreateBlobStream(Qry.FieldbyName('CLOB_INI') as TBlobField, bmRead);

 end;
 //Qry.Free;
 try
    tmp_ini.Seek(0, soFromBeginning);
          //contenidoIni.Seek(0, soFromBeginning);
     with TFileStream.Create( DIRECTORIO_INI + NOMBRE_INI, fmCreate) do
     try
             CopyFrom(tmp_ini, tmp_ini.Size)
     finally
              Free
     end;
 finally
          tmp_ini.Free;

 end;

 finally
  Qry.Free;

 end;

end;
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
CLOB Oracle y Delphi rafaelc Oracle 2 10-04-2007 00:10:29
Trigger y campo CLOB juanmdq Oracle 1 15-12-2006 14:01:56
Acceso solo lectura con dbExpress ManelC Conexión con bases de datos 4 23-08-2005 16:39:39
Like, en un campo CLOB, ó BLOB ingacg Oracle 2 15-07-2003 16:10:06


La franja horaria es GMT +2. Ahora son las 09:27:12.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi