Précédent   Forum des professionnels en informatique > Bases de données > Firebird
Firebird Forum d'entraide sur le SGBD Firebird. Avant de poster -> F.A.Q Firebird, Tutoriels
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/01/2011, 13h48   #1
Membre à l'essai
 
sky life
Inscription : janvier 2011
Messages : 41
Détails du profil
Informations personnelles :
Nom : sky life

Informations forums :
Inscription : janvier 2011
Messages : 41
Points : 23
Points : 23
Envoyer un message via MSN à fifi_dz
Par défaut base de donné sous firebird & delphi 2010

slt
je travaille sous le delphi 2010 la base de donné sous firebird et les composant s UIB pour accéder a la base de donné
je voulais tester l'affichage de la base de donné dans un stringGrid mais kand je l'éxecute et je click sur le button , on m'affiche rien
ps: j'ai testé la base de donné si elle est bien connecté , tout est bien
peut etre vous avez une idée différente sur ce que je fais
voisi le code que j'ai implémenté:
Code delphi :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
procedure TForm1.Button1Click(Sender: TObject);
var
   i:integer;
 
begin
i:=1;
Query.Close();
Query.SQL.Clear;
 
Query.SQL.Add('SELECT NOM,PRENOM FROM ESSAIE1' );
 
Query.Open();
 
     Grid.RowCount:=2;
  while Not Query.Eof do
    begin
      Grid.Cells[0,i]:=Query.Fields.ByNameAsString['NOM'];
      Grid.Cells[1,i]:=Query.Fields.ByNameAsString['PRENOM'];
         Inc(i);
      Grid.RowCount:=Query.Fields.RecordCount+1;   Query.Next;
 
    end;
 
   Query.Close();
end;
fifi_dz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2011, 18h45   #2
Membre éprouvé
 
Homme
Analyste-développeur
Inscription : mai 2002
Messages : 989
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Analyste-développeur

Informations forums :
Inscription : mai 2002
Messages : 989
Points : 426
Points : 426
Bonsoir,

Vous devez exécuter votre requête au sein d'une transaction en utilisant le composant correspondant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Query.Close();
Query.SQL.Clear;
Query.SQL.Add('SELECT NOM,PRENOM FROM ESSAIE1');
IF UIBTransaction1.InTransaction Then  UIBTransaction1.Commit;
 Try
 UIBTransaction1.StartTransaction;
 Query.Open;
 
//Votre boucle de lecture

 UIBTransaction1.Commit;
 Except
 UIBTransaction1.RollBack:
 End;
Et ne pas oublier la méthode de déplacement du DataSet qui ne figure pas dans votre code :
__________________
Seul le Savoir est le Pouvoir
freud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2011, 20h10   #3
Membre à l'essai
 
sky life
Inscription : janvier 2011
Messages : 41
Détails du profil
Informations personnelles :
Nom : sky life

Informations forums :
Inscription : janvier 2011
Messages : 41
Points : 23
Points : 23
Envoyer un message via MSN à fifi_dz
Citation:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Query.Close();
Query.SQL.Clear;
Query.SQL.Add('SELECT NOM,PRENOM FROM ESSAIE1');
IF UIBTransaction1.InTransaction Then  UIBTransaction1.Commit;
 Try
 UIBTransaction1.StartTransaction;
 Query.Open;
 
//Votre boucle de lecture

 UIBTransaction1.Commit;
 Except
 UIBTransaction1.RollBack:
 End;
j'ai essayé ta méthode mais toujour rien , on m'affiche rien

Citation:
Et ne pas oublier la méthode de déplacement du DataSet qui ne figure pas dans votre code :
sii elle est figure dans le code , elle est juste apré :
Citation:
Grid.RowCount:=Query.Fields.RecordCount+1;
merci
fifi_dz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2011, 20h25   #4
Membre éprouvé
 
Homme
Analyste-développeur
Inscription : mai 2002
Messages : 989
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Analyste-développeur

Informations forums :
Inscription : mai 2002
Messages : 989
Points : 426
Points : 426
Qu'es-ce qui n'affiche rien ?
Avez-vous lié le compo transaction avec celui de la Database ?
Recevez-vous un message ?
Avez-vous d'abord etabli une connexion avec la BDD ?
Code :
1
2
3
4
5
6
 
Try
UIBDatabase1.Connected:=true;
Except
Showmessage('Connexion non etablie').
End;
Essayez de tester juste aprés l'Ouverture si le DataSet est rempli:
Code :
1
2
3
 
Query.Open;
Showmessage(IntToStr(Query.RecordCount));
Citation:
Envoyé par fifi_dz Voir le message
sii elle est figure dans le code , elle est juste apré :
Désolé, je n'ai pas fais attention parce qu'elle se trouve sur la même ligne que Query.Fields.RecordCount+1
__________________
Seul le Savoir est le Pouvoir
freud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2011, 22h30   #5
Membre à l'essai
 
sky life
Inscription : janvier 2011
Messages : 41
Détails du profil
Informations personnelles :
Nom : sky life

Informations forums :
Inscription : janvier 2011
Messages : 41
Points : 23
Points : 23
Envoyer un message via MSN à fifi_dz
Citation:
Avez-vous lié le compo transaction avec celui de la Database ?
oui toute est bien lié

voici le code exacte

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
procedure TForm1.Button2Click(Sender: TObject);
var
   i:integer;
   info:Tficheinfo;
begin
   i:=1;
Query.Close();
Query.SQL.Clear;
 
{Commande:TmbTBXStringGrid;  }
 
 
Query.SQL.ADD('SELECT NOM,PRENOM FROM TAB' );
 
Query.Open();
 
  while NOT Query.Eof do
    begin
      Grid.Cells[0,i]:=Trim(Query.FIELDS.ByNameAsString['NOM']);
      Grid.Cells[1,i]:=Query.FIELDS.ByNameAsString['PRENOM'];
 
      Query.Next;
      Grid.RowCount:=Query.FIELDS.RecordCount+1;
      Inc(i);
    end;
 
   Query.Close();
end;
le problème c'était au niveau de la requête , au lieu de mettre le nom de la table , j'ai mi le nom de la base de donné
merci
fifi_dz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h03.


 
 
 
 
Partenaires

Hébergement Web