I'm using Encryption with SDAC.
When updating, i'm using this statement:
Code: Select all
        qry.SQL.Text := 'select FIELD1, FIELD2 from dbo.MyTable;
        qry.Encryption.Fields := 'FIELD1, FIELD2;
        qry.DataTypeMap.AddFieldNameRule ('FIELD1', ftString);
        qry.DataTypeMap.AddFieldNameRule ('FIELD2', ftString);
        qry.Open;
        qry.Edit;
        qry.FieldByName('FIELD1').AsString := myString1;
        qry.FieldByName('FIELD2').AsString := myString2;
        qry.Post;        
The tables fields are varbinary fields.
On some tables i get an acess violation in TData.InternalCompareFieldValue. Since i have no source code i can't debug the cause. Maby somebody has an idea?
Here is the full call stack:
Code: Select all
00961b13 +0ca3 MyApp.exe MemData                   TData.InternalCompareFieldValue
00962126 +0206 MyApp.exe MemData                   TData.CompareFieldValue
00a46c27 +0297 MyApp.exe DASQLGenerator            TDASQLGenerator.FieldModified
00a46d95 +0035 MyApp.exe DASQLGenerator            TDASQLGenerator.FieldModified
00a480de +006e MyApp.exe DASQLGenerator            TDASQLGenerator.GenerateUpdateSQL
01494d5f +008f MyApp.exe MSSQLGenerator            TCustomMSSQLGenerator.GenerateUpdateSQL
00a494c4 +0154 MyApp.exe DASQLGenerator            TDASQLGenerator.GenerateSQLforUpdTable
00a49725 +0115 MyApp.exe DASQLGenerator            TDASQLGenerator.GenerateSQL
00a82412 +0562 MyApp.exe DBAccess                  TDADataSetUpdater.CheckUpdateSQL
00a85d9f +008f MyApp.exe DBAccess                  TDADataSetUpdater.PerformSQL
00a8736d +011d MyApp.exe DBAccess                  TDADataSetUpdater.PerformUpdateDelete
00a87550 +0010 MyApp.exe DBAccess                  TDADataSetUpdater.PerformUpdate
0098afa0 +0040 MyApp.exe MemDS                     TDataSetUpdater.DoPerformUpdate
00983b3b +001b MyApp.exe MemDS                     TMemDataSet.DoPerformUpdate
0095e3b4 +0014 MyApp.exe MemData                   TData.InternalUpdate
01479dec +001c MyApp.exe OLEDBAccess               TOLEDBRecordSet.InternalUpdate
00967f97 +0057 MyApp.exe MemData                   TMemData.UpdateRecord
01340d34 +0004 MyApp.exe SqlClasses                TSqlRecordSet.UpdateRecord
0095e1ae +006e MyApp.exe MemData                   TData.PostRecord
00967c7c +004c MyApp.exe MemData                   TMemData.PostRecord
00982e59 +0169 MyApp.exe MemDS                     TMemDataSet.InternalPost
00a75993 +0123 MyApp.exe DBAccess                  TCustomDADataSet.InternalPost
0091a310 +0040 MyApp.exe Data.DB                   TDataSet.CheckOperation
00919bb2 +0062 MyApp.exe Data.DB                   TDataSet.Post
00982f4c +000c MyApp.exe MemDS                     TMemDataSet.Post
014be8fb +000b MyApp.exe MSAccess                  TCustomMSDataSet.Post
0529205e +2bbe MyApp.exe Objects 1116 +558 TMyObject.prcSave