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;

 

 



ASTA Overview TAstaServerSocket.OnClientLogin TAstaServerSocket.OnFetchMetaData