Forráskód Böngészése

fcl-db: sqlite: when raising database error retrieve also extended error code and pass it to ESQLDatabaseError exception object.

git-svn-id: trunk@32034 -
lacak 9 éve
szülő
commit
16b02dcd2b
1 módosított fájl, 6 hozzáadás és 12 törlés
  1. 6 12
      packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp

+ 6 - 12
packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp

@@ -152,16 +152,8 @@ begin
 end;
 
 procedure TSQLite3Cursor.checkerror(const aerror: integer);
-
-Var
-  S : String;
-
 begin
- if (aerror<>sqlite_ok) then 
-   begin
-   S:=strpas(sqlite3_errmsg(fhandle));
-   DatabaseError(S);
-   end;
+  fconnection.checkerror(aerror);
 end;
 
 Procedure TSQLite3Cursor.bindparams(AParams : TParams);
@@ -810,13 +802,15 @@ end;
 procedure TSQLite3Connection.checkerror(const aerror: integer);
 
 Var
-  S : String;
+  ErrMsg : String;
+  ErrCode : integer;
 
 begin
  if (aerror<>sqlite_ok) then 
    begin
-   S:=strpas(sqlite3_errmsg(fhandle));
-   DatabaseError(S,Self);
+   ErrMsg := strpas(sqlite3_errmsg(fhandle));
+   ErrCode := sqlite3_extended_errcode(fhandle);
+   raise ESQLDatabaseError.CreateFmt(ErrMsg, [], Self, ErrCode, '');
    end;
 end;