anchor.diff:  
     FExecuted:= False;
     FAborted:= False;
  -  If FPrepared Then
  -  Begin
  -    { Reset Statement Handle }
  -    If Hdbc.CursorLib = SQL_CUR_USE_DRIVER Then
  -      CloseCursor;
  -
  +  If not FPrepared Then
  +  Begin
       { Execute SQL Statement }
       FRetCode:= SQLExecute(FHstmt);
     End
     Else
     Begin
  +    { Reset Statement Handle }
  +    If Hdbc.CursorLib = SQL_CUR_USE_DRIVER Then
  +      CloseCursor;
  +
       { Parse Parameter SQL }
  -    ParsedSQL:= ParseSQL;
  -
  -    { Execute SQL Statement }
  -    FRetCode:= SQLExecDirect(FHstmt, Pointer(PChar(ParsedSQL)), SQL_NTS);
  +    ParsedSQL := odbcPChar(ParseSQL);
  +    try
  +      { Execute SQL Statement }
  +      FRetCode:= SQLExecDirect(FHstmt, ParsedSQL, SQL_NTS);
  +    finally
  +      FreeMem(ParsedSQL);
  +    end;
     End;
     If FAborted Then
     Begin
  
positive.code:   else
    begin
      {$IFDEF MACOS}
      getMem(result, length(s) * 4);
      fillChar(result^, length(s)*4, 0);
      for i := 1 to length(s) do
        result[(i-1) * 2] := s[i];
      {$ELSE}
      getMem(result, length(s) * 2);
      fillChar(result^, length(s)*2, 0);
      move(s[1], result^, length(s) * 2);
      {$ENDIF}
    end;
  
negative.code: 
  Procedure TOdbcStatement.Execute;
  Var
    ParsedSQL: PChar;
    RetCode: SQLRETURN;
  Begin
    Log(1, 'TOdbcStatement.Execute');
  