• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1402
  • Last Modified:

TadoTable and Primary Key with Multi fields : Edatabase Error : Duplication in TIndexDefs

Hello,

I have a MSAccess DataBase
And in this DataBase a Table with a Primary Key based on 2 fields (NumField1 and NumField2). This table is in fact linked with 2 mothers tables (one with NumField1 Field and the other with Numfield2 Field)
In delphi i use a TadoConnection  to connect my database (witj odbc driver)
I use too a TadoTable to connect my table and i don't add or specify Index

At compilation no pb.
When i execute my application i have a Edatabase error : my <Primary Key Name > is duplicate in TIndexDefs.

I tried many things and i am sure it's because i have a multi fields in my primary index in access but i don't understand why it's no walk with Tadotable in Delphi.

Thanks for your help

0
fprovin
Asked:
fprovin
  • 5
  • 4
  • 3
1 Solution
 
systanCommented:
Reset or Reindex or Redefine TIndexDefs

If error persist after that? Remove your primary keys in your Primary Key based Table, but do not remove the primary keys in the 2 mother tables.
0
 
Geert GruwezOracle dbaCommented:
are you selecting from 2 tables with identical column names ?

select *
from tableA A, tableB B
where a.numfield1 = b.numfield1

table A:
numfield1
numfield2

table B:
numfield1
numfield2

change query to

select a.numfield1, a.numfield2, b.numfield1 numfield1_b, b.numfield1 numfield2_B
from tableA A, tableB B
where a.numfield1 = b.numfield1


does that work ?
0
 
fprovinAuthor Commented:
Hi,

for Geert : no i don't do this. My Tadotable component is based only on one table.
for Systan :
Reset or Reindex : in access ?
Redefine TIndexDefs : ou meen in Delphi ?

Regards
0
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

 
systanCommented:
If TIndexDefs is a component,  remove your TIndexDefs, save delphi code, open delphi code, then drop it back again.
0
 
Geert GruwezOracle dbaCommented:
can you post a sample .mdb with this behaviour ?

you better add access to the zones, not just delphi
you'll get a lot more access experts to look at this Q
0
 
fprovinAuthor Commented:
Hi,

For Systran : in conception i don't have any TindexDefs component i suppose that this component is cretaed  at the execution by TadoTable Component. One fact is sure : i have nothing in my code to create this component.
In Delphi help they said that TindexDef is present in TTable andTClientDataSet  but i am not using these components. (TTable is perhaps used by TadoTable).

For reindex in access, i will do it this morning.

For Geert : ok i post a simple mdb this morning too.
0
 
fprovinAuthor Commented:
Hi,

I tried to redefine Index in Access. I still have the same problem.
Here may mdb

Regards
Tests.mdb
0
 
systanCommented:
Please show your code snippet accessing this database
0
 
fprovinAuthor Commented:
Hi,

I found the solution. If i use a client for curseur location with the tadoconnection i don't have this error. It's a little bit stupid but it means that i am obliged to use the client value for cursor location where i would prefer server but that's like that.

Thanks for all
0
 
Geert GruwezOracle dbaCommented:
this actually means that you are using local (memory) resources instead of the ones on the server
it's better like this if you have a lot of clients
0
 
Geert GruwezOracle dbaCommented:
posting code would help in finding your problem a lot faster
now it was just blind guessing
0
 
fprovinAuthor Commented:
Yeah,
you're right next time i will post the form and unit. At the beginning i was thinking it s not necessary because without code i had the problem. But i forgot parameters of the component

Best Regards
0

Featured Post

Receive 1:1 tech help

Solve your biggest tech problems alongside global tech experts with 1:1 help.

  • 5
  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now