IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

Base de données Access (débutant)


Sujet :

Bases de données Delphi

  1. #1
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2017
    Messages : 17
    Points : 2
    Points
    2
    Par défaut Base de données Access (débutant)
    Salut
    J'ai un problème, je suis un débutant en Delphi.
    J'ai une base de données Access avec clé primaire numérique.
    En Delphi, je me suis connecté c'est bon, mais si je fais un enregistrement, ça ne marche pas.

    Mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    ADOTable1.Insert;
    ADOTable1nom.Value:=Edit1.Text;
    ADOTable1prenon.Value:=Edit2.Text;
    ADOTable1.Post;
    end;
    SVP, aidez moi.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Bonjour et bienvenue,

    Avec ces seuls renseignements, ce que je détecte c'est que, à moins que la clé primaire numérique ne soit une colonne auto-incrémentée et indiquée comme non obligatoire dans la déclaration des champs vous devez obtenir :
    -soit une erreur avec une demande de champ obligatoire
    -soit une erreur de clé non renseignée
    ce qui est à peu de chose près pareil, seul ce qui le déclenche est différent dans le premier cas c'est Delphi dans le second le SGBD <- j'ai simplifié la cause

    Comme vous n'avez pas indiqué le message d'erreur (il doit bien y en avoir un), ni la structure de la table (SGBD, type de colonnes, Triggers, etc. ) difficile d'aller plus avant une suggestion de code cependant . Bien que je subodore que le "SGBD" soit Access je préfére tout de suite indiquer : Access et ADO ce n'est pas ma tasse de thé

    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
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    ADOTable1.Insert;
    ADOTable1nom.Value:=Edit1.Text;
    ADOTable1prenon.Value:=Edit2.Text;
    try
    ADOTable1.Post;
    except
      on E:Exception do   // capture de l'erreur
        begin
           Showmessage(E.Message);  // affichage de l'erreur
           AdoTable1.Cancel; // annulation de Insert
        end;
    end;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    Comme déjà indiqué on manque un peu d'éléments. Notamment on ne sait pas trop ce qu'est la variable ADOTable1nom et d'où elle sort.
    Déjà est ce que tu arrives à lire une valeur dans ta table et comment ?
    Une doc assez complète (bien qu'ancienne) sur les bases MS Access et Delphi : https://www.academia.edu/16957906/De...DO_from_Delphi

  4. #4
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2017
    Messages : 17
    Points : 2
    Points
    2
    Par défaut base donnees delphi
    salut
    j'ai oublie de mentionner le message d'erreur
    le champ client.num_client ne peut pas contenir une valeur null car la valeur propriete requiered pour ce champ est true saisissez une valeur dans ce champ
    je vous remercie d'avance

  5. #5
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2017
    Messages : 17
    Points : 2
    Points
    2
    Par défaut
    bonjour
    je reformule ma requéte voila j'ai une base de donnees ms access gestion.mdb
    j'ai une table client avec 3 champs num_client comme cle primaire valeur numerique non pas auto,nom_client valeur text court ,prenom_client valeur text court.
    je lance mon delphi7 je me connecte a ma base access
    je saisi le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    DM.tblclentl.Insert;
    DM.tbclientl.FieldByName('nom_client').AsString:=ednom.Text;
    DM.tblclient.FieldByName('prenom_client').AsString:=edprenom.Text;
    DM.tblmal.Post;
    end;
    message erreur ( le champ num_client ,ne peut pas contenir une valeur NULL car al valeur requiered pour ce champ est true,

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 429
    Points : 24 794
    Points
    24 794
    Par défaut
    un Post sur tblmal alors que l'on modifié tblclentl n'est pas correct, cela n'a aucun sens !
    Vous comprenez ce que vous faîtes ?

    Chercher encore !


    Indice, transformer 'num_client' en autoInc serait l'évidence même ou alors si ACCESS le fourni, utiliser une Séquence
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2017
    Messages : 17
    Points : 2
    Points
    2
    Par défaut base donnees delphi
    bonjour
    comme je suis nouveau en delphi veuiller m'indiquer comment transformer auto incrementer un id
    je vous remercie d'avance

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Du coup cela devient un problème Access
    https://www.techonthenet.com/access/...utoinc2007.php

    ou une solution à base de SQL SELECT MAX(NUM_CLIENT)+1 FROM CLIENTS pour obtenir le numéro

    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
     
    procedure TForm1.Button1Click(Sender: TObject);
    var AQuery : TADOQuery;
    begin
    AQuery:=TAdoquery.Create(Self)  // il doit y avoir d'autres possibilités que la création d'un ADOquery
    try
    AQuery.Connexion:=dmtbclient.connexion;
    AQuery.SQL.Text:='SELECT MAX(NUMCLIENT)+1 as NewNum FROM CLIENTS';
    AQuery.Active:=True;
    DM.tblclentl.Insert;
    DM.tbclientl.FieldByName('num_client').asInteger:=AQuery.FieldByName('new_num').asInteger;
    DM.tbclientl.FieldByName('nom_client').AsString:=ednom.Text;
    DM.tblclient.FieldByName('prenom_client').AsString:=edprenom.Text;
    DM.tblmal.Post;
    finally
    AQuery.Active:=False;
    AQuery.Free;
    end;
    end;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  9. #9
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2017
    Messages : 17
    Points : 2
    Points
    2
    Par défaut
    bonjour
    j'aimerais vous montrer un code et me donner votre avis sur l'auto increment en delphi
    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
    procedure TForm2.Button1Click(Sender: TObject);
    begin
     ADOTable1.Insert;
     
     ADOTable1num_clientl.AsInteger:=ADOTable1.RecordCount+1;
     ADOTable1nom_clientl.Value:=edit1.Text;
     ADOTable1prenom_client.Value:=edit2.Text;
     
     
    try
    ADOTable1.Post;
     
    Except
    On Exception do
    ShowMessage('error');
    end;
    ADOTable1.Cancel;
     
    end;
    end.
    merci d'avance

  10. #10
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    je ne suis pas d'accord avec ce principe d'utilisation du recordcount comme base de l'incrémentation.
    Plusieurs raisons à cela :
    La plus évidente, si un jour vous supprimez une ligne (enregistrement) de votre table vous obtiendrez un nombre déjà utilisé et donc une erreur de clé existante.
    exemple : j'ai dans ma table les enregistrements 1,2,3,4 => recordcount=4 par conséquent le prochain numéro sera 5
    avant de faire une insertion je supprime la ligne 2 => recordcount=3 et prochain numéro calculé = 4 le 4 est déjà utilisé !

    Deuxième raison, recordcount n'est pas toujours fiable (et pratique) . Imaginons une très grosse table l'ouvrir prendrait bien évidemment beaucoup de temps, des mécanismes sont donc prévus (je ne sais si c'est le cas pour ADO) pour fournir seulement une partie de la table et la suite seulement si nécessaire donc recordcount ne serait pas forcément exact, indiquant non pas le nombre total d'enregistrements de la table mais seulement le nombre total lu (encore une fois cela dépend de comment fonctionne le composant)

    Dernière raison, rien n'empêche un utilisateur de vouloir donner un numéro précis à un enregistrement, dans ce cas si le numéro est supérieur au nombre d'enregistrements (en supposant qu'il n'y ait eu aucune suppression) à un moment donné nous retrouverons l'erreur de clé existante
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  11. #11
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2017
    Messages : 17
    Points : 2
    Points
    2
    Par défaut base de donnees access
    bonjour
    j'ai essayer le code suivant

    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
    procedure TForm1.Button1Click(Sender: TObject);
    var AQuery : TADOQuery;
    begin
    AQuery:=TAdoquery.Create(Self)  // il doit y avoir d'autres possibilités que la création d'un ADOquery
    try
    AQuery.Connexion:=dmtbclient.connexion;
    AQuery.SQL.Text:='SELECT MAX(NUMCLIENT)+1 as NewNum FROM CLIENTS';
    AQuery.Active:=True;
    DM.tblclentl.Insert;
    DM.tbclientl.FieldByName('num_client').asInteger:=AQuery.FieldByName('new_num').asInteger;
    DM.tbclientl.FieldByName('nom_client').AsString:=ednom.Text;
    DM.tblclient.FieldByName('prenom_client').AsString:=edprenom.Text;
    DM.tbclientl.Post;
    finally
    AQuery.Active:=False;
    AQuery.Free;
    end;
    end;
    mais ca ne marche pas
    message erreur
    impossible de changer la valeur du num_client
    si vous avez une autre idee
    merci d'avance.
    "la science une une lanterne qui eclaire les esprits".

  12. #12
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Citation Envoyé par aliaccess Voir le message
    impossible de changer la valeur du num_client
    si vous avez une autre idée
    plusieurs hypothèses en tout cas.
    1. Soit vous avez transformé votre colonne num_client en auto-incrément dans ce cas le calcul via SQL est devenu inutile la colonne étant en lecture seule;
    2. Soit vous avez déclaré les champs de la table dans votre datamodule en oubliant la colonne num_client;
    3. Soit encore num_client est déclaré mais en lecture seule

    j'en oublie peut-être, ce code, code que j'avais proposé, fonctionne chez moi
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  13. #13
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2017
    Messages : 17
    Points : 2
    Points
    2
    Par défaut base de donnees
    salut
    je suis toujour coince avec auto increment
    j'ai tout verifier plusieurs fois
    mais le message d'erreur 'impossible de modifier le champ 'num_client''
    avez vous autre suggestion
    je vous remercie .

  14. #14
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    c'est clairement un problème de votre programme ou de votre base de données
    Voici un code hyper rapide que je viens d'écrire juste histoire de me prouver que cela fonctionne

    .pas
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    unit UnitADO;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ADODB, Grids, DBGrids, DB;
     
    type
      TForm1 = class(TForm)
        ADOConnection1: TADOConnection;
        ADOTable1: TADOTable;
        DataSource1: TDataSource;
        DBGrid1: TDBGrid;
        ADOQuery1: TADOQuery;
        Button1: TButton;
        Prenom: TEdit;
        Nom: TEdit;
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Button1Click(Sender: TObject);
    var ANum : TAdoQuery;
        N : Integer;
    begin
    ANum:=TADOQuery.Create(Self);
    Try
      ANum.Connection:=ADOQuery1.Connection;
      ANum.SQL.Text:='SELECT MAX(ID)+1 AS N FROM CLIENTS';
      ANum.Active:=True;
      N:=ANum.FieldByName('N').asInteger;
      if N=0 then N:=1; // pour commencer à 1
    finally
      ANum.Close;
      ANum.Free;
    end;
      with ADOQuery1 do
       begin
         Active:=True;
         Insert;
         fieldByName('ID').asInteger:=N;
         FieldByName('Prenom').asString:=Prenom.Text;
         FieldByName('Nom').asString:=Nom.Text;
         Post;
       end;
      // rafraichir grille
      ADOTAble1.Close;
      ADOTAble1.Open;
    end;
     
    end.
    .dfm bien sûr la chaine de connexion est à changer, de même que le nom de la table (tablename de AdoTable1) et la requête(SQL.Strings) de ADOQuery1
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    object Form1: TForm1
      Left = 455
      Top = 150
      Width = 979
      Height = 551
      Caption = 'Form1'
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      OldCreateOrder = False
      PixelsPerInch = 96
      TextHeight = 13
      object DBGrid1: TDBGrid
        Left = 56
        Top = 112
        Width = 361
        Height = 120
        DataSource = DataSource1
        ReadOnly = True
        TabOrder = 0
        TitleFont.Charset = DEFAULT_CHARSET
        TitleFont.Color = clWindowText
        TitleFont.Height = -11
        TitleFont.Name = 'MS Sans Serif'
        TitleFont.Style = []
        Columns = <
          item
            Expanded = False
            FieldName = 'ID'
            Visible = True
          end
          item
            Expanded = False
            FieldName = 'PRENOM'
            Width = 120
            Visible = True
          end
          item
            Expanded = False
            FieldName = 'NOM'
            Width = 120
            Visible = True
          end>
      end
      object Button1: TButton
        Left = 504
        Top = 168
        Width = 161
        Height = 25
        Caption = 'Insert Query'
        TabOrder = 1
        OnClick = Button1Click
      end
      object Prenom: TEdit
        Left = 488
        Top = 128
        Width = 121
        Height = 21
        TabOrder = 2
        Text = 'Prenom'
      end
      object Nom: TEdit
        Left = 640
        Top = 128
        Width = 121
        Height = 21
        TabOrder = 3
        Text = 'Nom'
      end
      object ADOConnection1: TADOConnection
        Connected = True
        ConnectionString =
          'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\BAD\contacts.mdb' +
          ';Persist Security Info=False'
        LoginPrompt = False
        Mode = cmShareDenyNone
        Provider = 'Microsoft.Jet.OLEDB.4.0'
        Left = 96
        Top = 56
      end
      object ADOTable1: TADOTable
        Active = True
        Connection = ADOConnection1
        CursorType = ctStatic
        TableName = 'Clients'
        Left = 176
        Top = 56
      end
      object DataSource1: TDataSource
        DataSet = ADOTable1
        Left = 240
        Top = 56
      end
      object ADOQuery1: TADOQuery
        Connection = ADOConnection1
        Parameters = <>
        SQL.Strings = (
          'SELECT * FROM CLIENTS')
        Left = 488
        Top = 64
      end
    end
    la table est de structure simple :

    Nom : Capturer.PNG
Affichages : 698
Taille : 3,8 Ko
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  15. #15
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2017
    Messages : 17
    Points : 2
    Points
    2
    Par défaut base de donnees
    salut
    ca marche a merveille merci beaucoup,
    et que pensez vous de firedac.
    merci.

  16. #16
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Citation Envoyé par aliaccess Voir le message
    et que pensez vous de firedac.
    Que c'est nettement mieux que ADO (que je n'ai jamais apprécié) ou que DBExpress nécessitant des drivers spéciaux.
    Si l'on veut vraiment comparer avec d'autres produits tiers, Firedac est plus étoffé que ZEOSDBO mais moins complet que AnyDac (voir tableau pas forcement objectif) qui a plus de moteur SGBD embarqués
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  17. #17
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2017
    Messages : 17
    Points : 2
    Points
    2
    Par défaut base de donnees
    salut
    SVP quel est la meilleur facon d'inserer des donnees dans plusieurs tables liees ado ou sql?
    merci

  18. #18
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Hors sujet principal et pas assez précis comme demande. Ouvrez un nouveau sujet
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. taille maximale d'une base de donnée paradox
    Par Anonymous dans le forum Paradox
    Réponses: 5
    Dernier message: 14/02/2004, 18h39
  2. Proprietes du fichier de base de donnees
    Par Mouse dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/03/2003, 16h14
  3. [sgbd] Accès au base de données en Perl
    Par totox17 dans le forum SGBD
    Réponses: 3
    Dernier message: 24/02/2003, 17h05
  4. [VB6] [Access] Compacter une base de donnée
    Par mdoyer dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 24/09/2002, 12h33
  5. [VB6] [ODBC] Référencer une base de données avec vb
    Par af.balog dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 13/09/2002, 10h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo