Index: packages/lazarus/zdbc.lpk
===================================================================
--- packages/lazarus/zdbc.lpk	(revision 2963)
+++ packages/lazarus/zdbc.lpk	(working copy)
@@ -26,7 +26,7 @@
     </CompilerOptions>
     <Description Value="Zeos Low Level Database API"/>
     <Version Major="7" Minor="2"/>
-    <Files Count="10">
+    <Files Count="12">
       <Item1>
         <Filename Value="..\..\src\dbc\ZDbcDbLib.pas"/>
         <UnitName Value="ZDbcDbLib"/>
@@ -67,6 +67,14 @@
         <Filename Value="..\..\src\dbc\ZDbcPooled.pas"/>
         <UnitName Value="ZDbcPooled"/>
       </Item10>
+      <Item11>
+        <Filename Value="..\..\src\dbc\ZDbcAdo.pas"/>
+        <UnitName Value="ZDbcAdo"/>
+      </Item11>
+      <Item12>
+        <Filename Value="..\..\src\dbc\ZDbcAdoMetadata.pas"/>
+        <UnitName Value="ZDbcAdoMetadata"/>
+      </Item12>
     </Files>
     <RequiredPkgs Count="5">
       <Item1>
Index: packages/lazarus/zdbc.pas
===================================================================
--- packages/lazarus/zdbc.pas	(revision 2963)
+++ packages/lazarus/zdbc.pas	(working copy)
@@ -1,5 +1,5 @@
-{ Dit bestand is automatisch aangemaakt door Lazarus. Niet wijzigen!
-  Deze broncode is alleen gebruikt voor compilatie en installatie.
+{ This file was automatically created by Lazarus. Do not edit!
+  This source is only used to compile and install the package.
  }
 
 unit zdbc; 
@@ -8,7 +8,7 @@
 
 uses
     ZDbcDbLib, ZDbcInterbase6, ZDbcIntfs, ZDbcMetadata, ZDbcMySql, ZDbcOracle, 
-  ZDbcPostgreSql, ZDbcSqLite, ZDbcASA, ZDbcPooled;
+  ZDbcPostgreSql, ZDbcSqLite, ZDbcASA, ZDbcPooled, ZDbcAdo, ZDbcAdoMetadata;
 
 implementation
 
Index: packages/lazarus/zparsesql.lpk
===================================================================
--- packages/lazarus/zparsesql.lpk	(revision 2963)
+++ packages/lazarus/zparsesql.lpk	(working copy)
@@ -24,7 +24,7 @@
     </CompilerOptions>
     <Description Value="Zeos SQL Parsing Classes and Interfaces"/>
     <Version Major="7" Minor="2"/>
-    <Files Count="16">
+    <Files Count="17">
       <Item1>
         <Filename Value="../../src/parsesql/ZSybaseToken.pas"/>
         <UnitName Value="ZSybaseToken"/>
@@ -89,6 +89,10 @@
         <Filename Value="../../src/parsesql/ZSybaseAnalyser.pas"/>
         <UnitName Value="ZSybaseAnalyser"/>
       </Item16>
+      <Item17>
+        <Filename Value="../../src/parsesql/ZAdoToken.pas"/>
+        <UnitName Value="ZAdoToken"/>
+      </Item17>
     </Files>
     <RequiredPkgs Count="3">
       <Item1>
Index: packages/lazarus/zparsesql.pas
===================================================================
--- packages/lazarus/zparsesql.pas	(revision 2963)
+++ packages/lazarus/zparsesql.pas	(working copy)
@@ -1,5 +1,5 @@
-{ Dit bestand is automatisch aangemaakt door Lazarus. Niet wijzigen!
-Deze broncode is alleen gebruikt voor compilatie en installatie.
+{ This file was automatically created by Lazarus. Do not edit!
+  This source is only used to compile and install the package.
  }
 
 unit zparsesql; 
@@ -10,7 +10,7 @@
   ZSybaseToken, ZGenericSqlAnalyser, ZGenericSqlToken, ZInterbaseAnalyser, 
     ZInterbaseToken, ZMySqlAnalyser, ZMySqlToken, ZOracleAnalyser, 
     ZOracleToken, ZPostgreSqlAnalyser, ZPostgreSqlToken, ZScriptParser, 
-    ZSelectSchema, ZSqLiteAnalyser, ZSqLiteToken, ZSybaseAnalyser; 
+    ZSelectSchema, ZSqLiteAnalyser, ZSqLiteToken, ZSybaseAnalyser, ZAdoToken;
 
 implementation
 
Index: packages/lazarus/zplain.lpk
===================================================================
--- packages/lazarus/zplain.lpk	(revision 2963)
+++ packages/lazarus/zplain.lpk	(working copy)
@@ -24,7 +24,7 @@
     </CompilerOptions>
     <Description Value="Zeos Plain Database API"/>
     <Version Major="7" Minor="2"/>
-    <Files Count="18">
+    <Files Count="20">
       <Item1>
         <Filename Value="../../src/plain/ZPlainDbLibDriver.pas"/>
         <UnitName Value="ZPlainDbLibDriver"/>
@@ -81,6 +81,14 @@
         <Filename Value="../../src/plain/ZPlainDbLibConstants.pas"/>
         <UnitName Value="ZPlainDbLibConstants"/>
       </Item16>
+      <Item19>
+        <Filename Value="../../src/plain/ZPlainAdo.pas"/>
+        <UnitName Value="ZPlainAdo"/>
+      </Item19>
+      <Item20>
+        <Filename Value="../../src/plain/ZPlainAdoDriver.pas"/>
+        <UnitName Value="ZPlainAdoDriver"/>
+      </Item20>
     </Files>
     <RequiredPkgs Count="3">
       <Item1>
Index: packages/lazarus/zplain.pas
===================================================================
--- packages/lazarus/zplain.pas	(revision 2963)
+++ packages/lazarus/zplain.pas	(working copy)
@@ -10,7 +10,8 @@
   ZPlainDbLibDriver, ZPlainDriver, ZPlainLoader, ZPlainMySqlConstants, 
   ZPlainMySqlDriver, ZPlainOracleConstants, ZPlainOracleDriver, 
   ZPlainPostgreSqlDriver, ZPlainSqLiteDriver, ZPlainASADriver, ZPlainASAConstants,
-  ZPlainFirebirdDriver, ZPlainFirebirdInterbaseConstants, ZPlainDbLibConstants;
+  ZPlainFirebirdDriver, ZPlainFirebirdInterbaseConstants, ZPlainDbLibConstants, 
+  ZPlainAdo, ZPlainAdoDriver;
 
 implementation
 
Index: src/component/ZPropertyEditor.pas
===================================================================
--- src/component/ZPropertyEditor.pas	(revision 2963)
+++ src/component/ZPropertyEditor.pas	(working copy)
@@ -230,11 +230,9 @@
   , ZSqlMetadata
 {$ENDIF}
 {$IFNDEF UNIX}
-  {$IFNDEF FPC}
   {$IFDEF ENABLE_ADO}
 , ZDbcAdoUtils
   {$ENDIF}
-  {$ENDIF}
 {$ENDIF}
 {$IFDEF SHOW_WARNING}
 ,ZMessages
@@ -785,15 +783,18 @@
     ((GetZComponent as TZAbstractConnection).Protocol = 'sybase') then
       inherited
 {$IFNDEF UNIX}
-{$IFNDEF FPC}
 {$IFDEF ENABLE_ADO}
     else
     if ((GetZComponent as TZAbstractConnection).Protocol = 'ado') then
+    {$ifndef FPC}
       (GetZComponent as TZAbstractConnection).Database := PromptDataSource(Application.Handle,
         (GetZComponent as TZAbstractConnection).Database)
+    {$else}
+      (GetZComponent as TZAbstractConnection).Database := PromptDataSource(Application.MainForm.Handle,
+        (GetZComponent as TZAbstractConnection).Database)
+   {$endif}
 {$ENDIF}
 {$ENDIF}
-{$ENDIF}
     else
     begin
       OD := TOpenDialog.Create(nil);
@@ -1159,15 +1160,18 @@
     ((GetZComponent as TZConnectionGroup).Protocol = 'sybase') then
       inherited
 {$IFNDEF UNIX}
-{$IFNDEF FPC}
 {$IFDEF ENABLE_ADO}
     else
     if ((GetZComponent as TZConnectionGroup).Protocol = 'ado') then
+    {$ifndef FPC}
       (GetZComponent as TZConnectionGroup).Database := PromptDataSource(Application.Handle,
         (GetZComponent as TZConnectionGroup).Database)
+    {$else}
+    (GetZComponent as TZConnectionGroup).Database := PromptDataSource(Application.MainForm.Handle,
+      (GetZComponent as TZConnectionGroup).Database)
+    {$endif}
 {$ENDIF}
 {$ENDIF}
-{$ENDIF}
     else
     begin
       OD := TOpenDialog.Create(nil);
Index: src/dbc/ZDbcAdoMetadata.pas
===================================================================
--- src/dbc/ZDbcAdoMetadata.pas	(revision 2963)
+++ src/dbc/ZDbcAdoMetadata.pas	(working copy)
@@ -261,9 +261,7 @@
 implementation
 
 uses
-{$IFNDEF FPC}
   Variants,
-{$ENDIF}
   Math, ZDbcUtils, ZCollections, ZGenericSqlToken, ZDbcAdoUtils, ZDbcAdo,
   OleDB, ZDbcAdoResultSet;
 
Index: src/dbc/ZDbcAdoResultSet.pas
===================================================================
--- src/dbc/ZDbcAdoResultSet.pas	(revision 2963)
+++ src/dbc/ZDbcAdoResultSet.pas	(working copy)
@@ -417,7 +417,11 @@
   if LastWasNull then
      Exit;
   {$IFDEF WITH_RAWBYTESTRING}
+{$ifdef FPC}
+  Result := UTF8String(WideString(FAdoRecordSet.Fields.Item[ColumnIndex - 1].Value));
+{$else}
   Result := UTF8String(FAdoRecordSet.Fields.Item[ColumnIndex - 1].Value);
+{$endif}
   {$ELSE}
   Result := UTF8Encode(FAdoRecordSet.Fields.Item[ColumnIndex - 1].Value);
   {$ENDIF}
@@ -438,7 +442,11 @@
   LastWasNull := IsNull(ColumnIndex);
   if LastWasNull then
      Exit;
+{$ifdef FPC}
+  Result := RawByteString(WideString(FAdoRecordSet.Fields.Item[ColumnIndex - 1].Value));
+{$else}
   Result := RawByteString(FAdoRecordSet.Fields.Item[ColumnIndex - 1].Value);
+{$endif}
 end;
 
 {**
Index: src/dbc/ZDbcAdoStatement.pas
===================================================================
--- src/dbc/ZDbcAdoStatement.pas	(revision 2963)
+++ src/dbc/ZDbcAdoStatement.pas	(working copy)
@@ -133,9 +133,7 @@
 implementation
 
 uses
-{$IFNDEF FPC}
   Variants,
-{$ENDIF}
   OleDB, ComObj,
   {$IFDEF WITH_TOBJECTLIST_INLINE} System.Contnrs{$ELSE} Contnrs{$ENDIF},
   {$IFNDEF UNICODE}ZEncoding,{$ENDIF}
