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 :

bdexpress tuto simple pour gros debutant...


Sujet :

Bases de données Delphi

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Points : 226
    Points
    226
    Par défaut bdexpress tuto simple pour gros debutant...
    Bonjour

    J ai une connection à mysql via dbexpress.
    J ai un TsqlQuery avec ma requete...

    Mais là le grand vide.

    Je souhaiterais simplement pouvoir executer ma requete et en extraire le resultat dans un tableau, un Tstringlist ou.... mais pas dans une grid

    J ai cherché partout mais je ne trouve rien qui ne traite pas des composants visuels...

    Alors deux questions :
    -Etant donné que je ne souhaite pas affihcher le resultat de mes requetes mais les 'travailler', est-ce la bonne solution ?
    -Auriez vous un tuto ou un exemple qui repondrait à mes attentes ?

    merci pour votre aide.

  2. #2
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Bonjour,
    Je n'ai jamais travailler avec dbExpress. Je preferais Zeos tout autans qu'il est aussi gratuit et en plus, dbexpress est je crois unidirectionnel.
    Mais pour ta question, si tu as ta connection et to requête, il sufit juste de boucler dessus pour avoir les enregistrement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    i := 0;
    While Not MaQuery.Eof do
    begin
         //Insertion dans un tableau de record par exemple
        monTab[i].Field1 = Maquery.FieldByName('Champs1').AsString;
        monTab[i].Field2 = Maquery.FieldByName('Champs2').AsInteger
        monTab[i].Field3 = Maquery.FieldByName('Champs3').AsCurrency;
       inc(i);
       maQuery.Next;
    end;
    VOilà tu as tes données dans le Tableau monTab.

    A+

  3. #3
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 507
    Points : 2 779
    Points
    2 779
    Billets dans le blog
    10
    Par défaut
    Dans l'état de mes connaissances, car j'essaye de travailler avec DBExpress et BlackFish ce n'est pas évident.
    Ce qui est valable pour blackFish l'est pour MySQL
    DBExpress travaille en lecture seule donc est très rapide. Pour les mises à jour j'utilise les ADO Query.
    Je te livre un exemple d'une form allant jusqu'au DataSource. Tu peux aller sur le site de jColibri qui au travers de l'exemple sur blackfish montre l'utilisation de DBExpress.
    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
    object Form2: TForm2
      Left = 0
      Top = 0
      Caption = 'Form2'
      ClientHeight = 381
      ClientWidth = 667
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -13
      Font.Name = 'Tahoma'
      Font.Style = []
      OldCreateOrder = False
      PixelsPerInch = 120
      TextHeight = 16
      object DBNavigator1: TDBNavigator
        Left = 440
        Top = 8
        Width = 240
        Height = 25
        DataSource = DataSource1
        TabOrder = 0
      end
      object SQLConnection1: TSQLConnection
        ConnectionName = 'ESSAI'
        DriverName = 'BLACKFISHSQL'
        LoginPrompt = False
        Params.Strings = (
          'drivername=BLACKFISHSQL'
          'password=masterkey'
          'user_name=sysdba'
          'port=2508'
          'create=True'
          'readonlydb=False'
          'hostname=LocalHost'
          'database=C:\Documents and Settings\ALAIN\Bureau\aa\essai.jds')
        Left = 40
        Top = 8
      end
      object SQLDataSet1: TSQLDataSet
        SchemaName = 'DEFAULT_SCHEMA'
        CommandText = 'T1'
        CommandType = ctTable
        DbxCommandType = 'Dbx.Table'
        MaxBlobSize = -1
        Params = <>
        SQLConnection = SQLConnection1
        Left = 144
        Top = 8
      end
      object DataSource1: TDataSource
        DataSet = ClientDataSet1
        Left = 384
        Top = 8
      end
      object ClientDataSet1: TClientDataSet
        Aggregates = <>
        Params = <>
        ProviderName = 'DataSetProvider1'
        Left = 296
        Top = 8
        object ClientDataSet1C1: TWideStringField
          FieldName = 'C1'
          Required = True
          Size = 10
        end
      end
      object DataSetProvider1: TDataSetProvider
        DataSet = SQLDataSet1
        Left = 216
        Top = 8
      end
    end

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Points : 226
    Points
    226
    Par défaut
    merci,

    c est simple et je ne l ai trouvé nulle part...

    Sinon je sais le choix de ma bdd est du au seul fait qu ayant fait un peu dephp/mysql je me dis que la transition va etre moins difficile, que je perdrais moins de temps ....

    Mais je ne suis en rien fermé quant à une evolution à venir

  5. #5
    Membre chevronné Avatar de chaplin
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 215
    Points : 1 819
    Points
    1 819
    Par défaut
    Et dans les projets demos de delphi ?

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Points : 226
    Points
    226
    Par défaut Champ inconnu !
    Bonjour

    Bon j ai lu plus haut et tenté quelque chose mais sans reussitte.
    L insertion se passe sans probleme mais pour l interrogation j ai le message d erreur Champ 'id' non trouvé... alors meme que ce champ existe.

    Autre question : si je souhaite extraire sum, count et autres de ce type, comment recuperer le resultat, car je ne peux pas afficher de FieldByName ?


    Merci de votre aide.


    SQLQuery1.SQL.Add('INSERT INTO `db_tend`.`tb2` (`id`) VALUES (''dsqdsqdq'')');
    memo1.Lines.Add(SQLQuery1.text);
    SQLQuery1.ExecSQL;
    SQLQuery1.SQL.Clear;

    SQLQuery1.SQL.Add('SELECT id FROM `tb2` limit 0,1');
    memo1.Lines.Add(SQLQuery1.text);
    SQLQuery1.ExecSQL;
    memo1.Lines.Add(SQLQuery1.FieldByName('id').AsString);

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Points : 226
    Points
    226
    Par défaut
    Citation Envoyé par chaplin Voir le message
    Et dans les projets demos de delphi ?

    J ai bien trouvé un dbxblackfish.pas mais je ne comprends pas, je suis un transfuge de php/mysql et m attendais à trouvé qqchose d aussi simple. Je suis depassé par le coté visuel...

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Points : 226
    Points
    226
    Par défaut
    Je me reponds à moi même pour prouver que bien que je ne trouve pas souvent...je cherche.

    Mon pb est du à l instruction SQLQuery1.ExecSQL non approriée et remplacée par SQLQuery1.open;

    et oui F1 est notre ami ;-)

    Appelez ExecSQL pour exécuter une commande SQL qui ne renvoie aucun ensemble d'enregistrements. Cette commande est différente d'une requête SELECT (INSERT, UPDATE, DELETE, CREATE TABLE, etc.).

    ExecDirect indique que la requête ne doit pas être préparée avant son exécution. La valeur true peut être attribuée à ce paramètre si la requête ne comporte aucun paramètre. Si la valeur false lui est attribuée, la requête sera préparée avant son exécution. Même quand ExecDirect a la valeur false, vous pouvez éviter de préparer la requête à chaque appel de ExecSQL en affectant la valeur true à la propriété Prepared avant d'appeler ExecSQL pour la première fois.

    ExecSQL renvoie le nombre de lignes affectées par la commande exécutée. Cela devient la valeur de la propriété RowsAffected.

    Remarque: N'utilisez pas ExecSQL pour les commandes telles que les requêtes SELECT qui renvoient des données. Quand la commande renvoie des données, utilisez la méthode Open ou attribuez la valeur true à la propriété Active.

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

Discussions similaires

  1. Questions générales pour tres gros debutant
    Par sp2308 dans le forum Android
    Réponses: 2
    Dernier message: 07/10/2013, 15h20
  2. RTF Template ( Un exemple simple pour un debutant)
    Par tentsuken dans le forum Documents
    Réponses: 6
    Dernier message: 23/11/2010, 19h00
  3. Tuto simple pour GENTOO
    Par blmoussa dans le forum Autres
    Réponses: 2
    Dernier message: 09/07/2007, 08h17
  4. probleme pour gros naz debutant sur delphi...
    Par clem1313 dans le forum Débuter
    Réponses: 1
    Dernier message: 25/02/2006, 14h39
  5. recherche exemple simple pour corba en c++
    Par Pinggui dans le forum CORBA
    Réponses: 4
    Dernier message: 06/05/2002, 12h29

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