Nein, das was Du schreibst, kann so nicht sein.
Du hast 'ne TADOConnection, die baut 'ne Datenbankverbindung auf.
Zusätzlich weist Du aber der TADOTable auch 'nen ConnectionString zu. Entweder oder, aber bitte nicht beides.
Nimmst Du den String bei der TADOTable weg, wird die Verbindung der TADOConnection genutzt, sie scheinen sich wohl zu unterscheiden.
dm.Hd.DisableControls hat damit nix zu tun, das sagt nur, dass datensensitive Komponenten nicht aktuallisiert werden sollen. Ist also was für die Optik, aber nicht für den Datenbankzugriff.
Überprüfe doch mal bitte sämtliche Einstellungen der TADOConnection in allen Programmversionen, ob die auch wirklich zu 100% übereinstimmen.
Die Fehlermeldung besagt, dass die Änderungen nicht geschrieben werden dürfen, weil die Datenmenge nicht beschreibbar ist.
Also schau bitte mal nach, ob bei allen Versionen das Schreiben über die TADOConnection überhaupt zulässig ist.
Der von Dir gepostete ConnectionString lässt nicht erkennen, dass das Schreiben erlaubt sein könnte.
Beispiel für Windows-XP mit Delphi 7 und Zugriff auf 'ne
Access-Datenbank:
Format('Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=%s;Mode=ReadWrite|Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False',['c:\JrBrHd.mdb']);
Bei Deiner Version fehlen alle Angaben zu Mode=. Hier sollten aber die Zugriffsrechte stehen.
Unter Windows-XP ist als Vorgabe der Zugriff auf
ACCESS ReadOnly. Wie das bei anderen Betriebssystemen ist, mag ich jetzt nicht ermitteln. Prüfe das bitte selbst, durch den Aufbau einer neuen Datenbankverbindung aus der Entwicklungsumgebung heraus.