Bonjour,
J'ai créé une Unit qui me permet de me connecter à différents type de base de données (paradox, firebird, access, as400, sqlserver etc...) pour ce faire j'ai créer des objets qui hérite d'objet Tquery, TadoQuery,Tibquery etc...
Pour me permettre de gérer tout cela j'ai des directives de compilation.
cf une partie du code :
ce mode de fonctionnement me permet de limiter la modification de mon code lorsque je change de base de donnée, en effet il existe quelques différence pour certaines fonctions ou propiètés entre les composants TADOQUERY,TQUERY,TIBQUERY etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 uses UBDDQRY; {$DEFINE B_PDX} //{$DEFINE B_ACCESS} //{$DEFINE B_IB} //{$DEFINE B_EXPRESS} type {$IFDEF B_ACCESS} MY_T_QUERY = MY_TADO_QUERY; {$ENDIF} {$IFDEF B_PDX} MY_T_QUERY = MY_TBDE_QUERY; {$ENDIF} {$IFDEF B_IB} MY_T_QUERY = MY_DBIB_QUERY; {$ENDIF} {$IFDEF B_EXPRESS} MY_T_QUERY
par exemple :
pour TADOQUERY : ADOQUERY.Parameters[Indice].Value = '111111'
pour TQUERY : QUERY.Params[Indice].Value= '111111'
pour TIBQUERY : IBQUERY.Params[Indice].value = '111111'
Je remplace tout par MyQUERY.My_Parameter[Indice].Value= '111111'
où :
Maintenant je souhaite créer un composant (que je vais placer dans une palette).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function My_Parameter (.....) begin {$IFDEF B_ACCESS} ADOQUERY.Parameters[Indice].Value = '111111' {$ENDIF} {$IFDEF B_PDX} QUERY.Params[Indice].Value= '111111' {$ENDIF} {$IFDEF B_IB}IBQUERY.Params[Indice].value = '111111' {$ENDIF} end
je souhaite donc créer une proprièté, une constante, un paramêtre que sais-je (dans mon composant MY_QUERY) qui me permettrais en fonction de la valeur avoir le même résulat que la directive de compile.
J'espère avoir été clair !
Cordialement
Qays.
Partager