Delphi - Interbase y edicion de tipos blob

 
Vista:

Interbase y edicion de tipos blob

Publicado por Pedro (6 intervenciones) el 16/07/2004 17:15:36
hola

estoy usando delphi 7 e interbase 6.

en interbase cree esta tabla de pruebas:

CREATE TABLE "solotexto"("Texto" BLOB SUB_TYPE 1 SEGMENT SIZE 80);

pero no logro hacer nada de nada con ella, ni editar ni insertar en el campo Texto. se produce el siguiente error.

"Dynamic SQL error SQL error code=-104 Unexpected end of command".

y no tengo ni idea de lo ocurre, pues hago lo mismo para probar con otros tipos de datos y funciona.

Uso:

DataSource, IBTable, IBTransaction, IBDatabase, DBNavigator,DBMemo, DBGrid.

gracias por cualquier ayuda.
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

RE:Interbase y edicion de tipos blob

Publicado por alfonso (6 intervenciones) el 16/07/2004 18:16:50
En principio no debes de tener ningun tipo de problema.
Yo lo utilizo asi y no tengo problemas.
Creo que el problema lo tienes en otro sitio.
Te sugiero que habras un formulario e insertes un dbmemo y grabes.
un saludo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Interbase y edicion de tipos blob

Publicado por pedro (6 intervenciones) el 16/07/2004 18:52:43
ya lo hice y nada.

funciona estupendamente cuando en la creacion de la tabla no especifico el Sub_type 1, pero al hacerlo todo se derumba.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ahora trate de hacer esto y tampoco

Publicado por Pedro (6 intervenciones) el 16/07/2004 22:10:10

delphi

library funcion;

uses
ShareMem,
SysUtils;

type
TGetSegmentProc = function (Handle: Pointer;
var Buffer; Size: Integer; var Read: Integer): Integer cdecl;
TPutSegmentProc = function (Handle: Pointer;
var Buffer; Size: Integer): Integer cdecl;
PBlob = ^TBlob;
TBlob = record
GetSegment: TGetSegmentProc;
Handle: Pointer;
Segments: Integer;
MaxLength: Integer;
TotalSize: Integer;
PutSegment: TPutSegmentProc;
end;

procedure Str2Text(AText: PChar; Blob: Pointer); cdecl; export;
begin
if AText <> nil then
PBlob(Blob).PutSegment(
PBlob(Blob).Handle, AText^, StrLen(AText));
end;

exports
Str2Text;
begin
end.

esto funciona, al menos compilo la dll, la puse en c:\funcion.dll

en interbase hice esto:

CREATE TABLE "test" ("TEXTO" BLOB SUB_TYPE TEXT SEGMENT SIZE 80);

DECLARE EXTERNAL FUNCTION STR2TEXT CSTRING(255) HARACTER SET NONE RETURNS BLOB ENTRY_POINT 'Str2Text' MODULE_NAME 'c:\funcion.dll';

INSERT INTO test (texto) VALUES (str2text('estoy probando'));

y me de el siguiente error.

Dynamic SQL Error
SQL error code = -206
Column unknown
TEXTO
Statement: insert into test (texto) values (str2text('estoy probando'))

y nada de nada, no se que ocurre.

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Interbase y edicion de tipos blob

Publicado por Delfino (1216 intervenciones) el 18/07/2004 20:31:39
Porque no utilizas la edicion gratyuita del IBExpert para crear las tablas, yo lo hice asi y trabaje con el Blob sin ningun problema incluyendo el SubType..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar