J'ai une application qui se connecte via une source de données à une base de données Oracle. Si la tentative initiale de connexion échoue, alors je m'assure que leur DSN existe. S'il n'existe pas, je le crée en utilisant la commande SQLConfigDataSource.Lors de la création par programme d'un DSN pour une base de données Oracle, comment puis-je indiquer de manière fiable le nom du pilote?
Cette commande nécessite le nom du pilote comme l'un de ses arguments. Sur ma machine, je le pilote de 11g, de sorte que les travaux suivants:
const
cDriver = 'Oracle in OraDb11g_home1' + #0;
var
strAttr: string;
begin
strAttr := 'DSN=' + DSNName + #0 +
'SERVER=' + TNSName + #0;
SQLConfigDataSource(0,ODBC_ADD_SYS_DSN,PChar(cDriver),PChar(strAttr));
end;
Mais la machine client peut avoir une autre version d'Oracle, ou un autre nom pour leur maison d'oracle. Comment puis-je savoir quel pilote utiliser sur une machine arbitraire?
J'utilise Delphi, mais il ne devrait pas beaucoup d'importance, car cela est juste un appel d'API de toute façon.