TAstaServerSocket.OnFetchBlobEvent
Applies to
TAstaServerSocket
Declaration
type TAstaFetchBlobEvent = procedure(Sender:
TObject;
ClientSocket: TCustomWinsocket; AQuery: TComponent;
DataBaseStr, TableName, FieldName, WhereString: string;
var M: TMemoryStream) of
object;
property OnFetchBlobEvent: TAstaFetchBlobEvent;
Description
In order to to fetch a single blob from an ASTA server this event
must be coded. The following is an example from the AstaBDEServer.
See Coding ASTA Servers for steps to create an ASTA server.
procedure TForm1.AstaServerSocket1FetchBlobEvent(Sender: TObject;
ClientSocket: TCustomWinSocket; AQuery: TComponent; DataBaseStr,
TableName, FieldName, WhereString: string; var M: TMemoryStream);
var
S: string;
begin
try
if Query.Active then Query.Close;
TQuery(AQuery).SQL.Clear;
if MainDataBase.IsSQLBased then S := 'SELECT ' + FieldName +
' FROM ' + Tablename + ' ' + WhereString
else
//Paradox needs the " for spaces in table names;
S := 'SELECT ' + TableName + '."' + FieldName + '" FROM ' +
TableName + ' ' + WhereString;
TQuery(AQuery).SQL.Add(S);
TQuery(AQuery).Open;
if TQuery(AQuery).Recordcount > 0 then begin
case TQuery(AQuery).FieldByName(FieldName).DataType of
ftMemo: TMemoField(TQuery(AQuery).FieldByName(
FieldName)).SaveToStream(M);
ftBlob,
ftGraphic: TBlobField(TQuery(AQuery).FieldbyName(
FieldName)).SaveToStream(M);
end;
end;
except
LogException(ClientSocket, Exception(exceptObject).Message, True);
end;
end;