connexion Interbase avec Delphi perso
J'ai suivi à la lettre le tutoriel "Attaquer une base Firebird avec Delphi version personnelle".
J'ai adapté ce principe pour une base de donnée Interbase version 6.
La connection se passe bien, mais quand je teste sur un utilisateur qui n'existe pas, il accepte la connection, malgré tout. Pouvez vous m'indiquer ou ça pèche?
Voici le code python :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class TFBConnection:
def __init__(self, host='ERIC', database='C:\WINDOWS\SYSTEM32\BASE 3D', \
user='ERIC', password='AUDR95'):
self.database=database
self.host=host
self.user=user
self.password=password
## Created: ??? - Updated: 2005.07.28
def Connect(self): self.con = kinterbasdb.connect(host=self.host, database=self.database, user=self.user, password=self.password)
## Created: ??? - Updated: 2005.07.28
def Commit(self): self.con.commit()
## Created: ??? - Updated: 2005.07.28
def Cursor(self): return TFBCursor(self)
## Created: ??? - Updated: 2005.07.28
def Rollback(self): self.con.rollback()
## Created: ??? - Updated: 2005.07.28
def Close(self): self.con.close()
## Created: ??? - Updated: 2005.07.28
def DropDatabase(self): self.con.drop_database()
## Created: ??? - Updated: 2005.07.28
def CreateDatabase(self): self.con = kinterbasdb.create_database( "create database '"+self.database+"' user '"+self.user+"' password '"+self.password+"'") |
Et le code Delphi :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Begin
PyString:=TStringList.Create;
PyString.LoadFromFile('c:\Dossiers Eric\Développement\Base 3D Delphi\FBBase.Py');
PELogin.ExecStrings(PyString);
PyBase:=MainModule.TFBConnection();
PyBase.User:=ELogin.Text;
PyBase.Password:=EMotPasse.Text;
PyString.Free;
Try
PyBase.Connect();
FLogin.DestroyWindowHandle;
Except
MessageDlg('Login ou mot de passe incorrect!',mterror,[mbOk],0);
ELogin.Text:='';
EMotPasse.Text:='';
ELogin.SetFocus;
End;
End; |
Merci d'avance.
Re: connexion Interbase avec Delphi perso
Citation:
Envoyé par ptitdragon_eric
La connection se passe bien, mais quand je teste sur un utilisateur qui n'existe pas, il accepte la connection, malgré tout. Pouvez vous m'indiquer ou ça pèche?
Un truc qui me vient à l'esprit. Quand tu dis, il accepte la connexion malgré tout, est-ce qu'il t'indique avant que le login ou mot de passe est incorrect ?
Si oui, je suppose que juste avant tu as fait une connection avec le login/mot de passe correct. Puis que tu as fait le test à la suite avec un login incorrect. Mais comme tu n'avais pas déconnecté la connection, le programme est resté en connection avec l'ancien login/mot de passe.
Dans ce cas-là, il faut penser à se déconnecter avant une reconnection éventuelle
Code:
1 2 3 4
| try
PyBase.Close();
except
end; |