cs_oluha
Messages postés71Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention 5 février 2009
-
22 nov. 2004 à 10:32
cs_oluha
Messages postés71Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention 5 février 2009
-
24 nov. 2004 à 09:22
Bonjour,
Je travaille sur un logiciel utilisant une base de données access avec delphi 5.
J'ai crée une tdatabase avec l'alias de ma base dans AliasName et j'ai mis 'Accessb' dans Databasename.
LoginPrompt est à false et j'ai mis login='', user name='' et password='' dans les Params.
Toutes les TTable de mon logiciel utilisant la base access on comme DataBaseName 'Accessb'.
Quand je lance mon programme je choisi sur le disque la base de données access sur laquelle je veux travailler et il me demande alors une identification mais je ne souhaite pas que cette fenetre apparaisse :-/
J'ai lu plusieurs choses sur le forum mais cela ne fonctionne pas. Si quelqu'un pouvait m'éclairer...
jmp77
Messages postés1119Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention 4 octobre 20067 23 nov. 2004 à 08:59
Hello,
Tiens je te file la source que j'utilise pour créer mon lien avec ma base access : Tu dois lui passer en parametres le nom de l'alias ODBC et le mot de passe pour la base de données :
Tu auras surement a l'adapter car elle contient des composants ect mais je pense que tu devrais y arriver. Si tu n'y arrives fais moi signe.
Bonne prog,
JMP77.
N'oubliez pas de cliquer sur réponse acceptée.
{------------------------------------------------------------------------------}
{ Création du lien odbc pour se connecter à la base. }
{------------------------------------------------------------------------------}
function LoadCuusamoDataBase(AliasOdbc,PassBase : ShortString) : Boolean;
{Test pour voir si l'alias a bien été saisie}
If ALiasODBC = '' then
begin
ShowMessage('Entrez un nom pour l''alias ODBC');
Exit;
end;
{Initialisation de la boite d'ouverture}
OpenDialog := TOpenDialog.Create(nil);
OpenDialog.Title := 'Ouvrir base catalogue Cuusamo';
OpenDialog.Filter := 'Base de données Access (*.mdb)|*.mdb|Tous les fichiers (*.*)|*.*';
Try
{Ouverture de la boite de dialogue}
If OpenDialog.Execute then
begin
StrFile := OpenDialog.FileName; //Nom et chemin de la base Access
HLib := LoadLibrary( 'ODBCCP32' ); //Chargement de la Dll Odbccp32
If (hLib <> 0) then //Si la Dll est bien chargée
begin
@pFn := GetProcAddress(hLib, 'SQLConfigDataSource'); //Pointeur
jmp77
Messages postés1119Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention 4 octobre 20067 22 nov. 2004 à 14:16
salut,
Et bien ca me parait bien bizarre car moi meme je fais des chargement de bases access et en metant loginprompt := false et en saississant les bons parametres de login et mot de passe la fenetre n'apparait plus.
Donne nous le morceau de code ou tu charges ta base pour que l'on puisse te depanner...
cs_oluha
Messages postés71Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention 5 février 2009 22 nov. 2004 à 15:19
Voilà la déclaration de ma TDataBase (mode texte de la fiche) :
object Accessb: TDatabase
AliasName = 'accessadr01'
DatabaseName = 'Accessb'
LoginPrompt = False
Params.Strings = (
'LOGIN = '#39#39
'USER NAME = '#39#39
'PASSWORD = '#39#39)
SessionName = 'Mediapost01'
Left = 768
Top = 224
end
Pour choisir la base de données access sur laquelle on veut travailler j'ai un bouton qui ouvre une opendialog pour sélectionner la table et j'affiche ensuite les tables de la base dans une liste. Voici le morceau de code :
if OpenDialog1.Execute then EditBDD.Text:=OpenDialog1.FileName;
if CreeDSN(EditDriver.Text,EditNomDSN.Text,EditDescription.Text,EditBDD.Text)
<>0 then {rien} Else Showmessage('Echec de la connexion');
AliasName := EditNomDSN.Text;
Accessb.AliasName := AliasName;
If AliasName <> '' then
begin
// on efface le contenu des listes des tables
list_tables.Clear;
// On récupère la liste des tables de la bdd
Session1.GetTableNames(AliasName,'',false,false,list_tables.Items);
for i:=0 to list_tables.items.count-1 do
begin
list_tables.Items.strings[i]:=copy(list_tables.Items.strings[i],
{}pos('.',list_tables.Items.strings[i])+ 1,
{}length(list_tables.Items.strings[i]) - pos('.',
{}list_tables.Items.strings[i]));
end;
Et ensuite je met dans tous les TTable et TQuery DataBaseName à Accessb
Vous n’avez pas trouvé la réponse que vous recherchez ?