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 :

[MsSql-Rad-Studio] Remplir un formulaire


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 391
    Points : 189
    Points
    189
    Par défaut [MsSql-Rad-Studio] Remplir un formulaire
    Bonjour

    Merci de votre aide j'ai beaucoup progressé en SQL au point vu des rapports avec select, insertion des données je suis toujours surpris avec la vitesse et le minimum de lignes de commande que l'on écrit pour exécuter des recherches et afficher les résultats dans des rapports. Je ne comprend pas encore pourquoi je n'ai pas transféré de bde a SQL avant.

    Il me reste quelques choses que je ne saisie pas très bien avec insert et update. Comment vous procédez pour remplir un formulaire avec des DbEdit
    relié a la source. J'aurais besoins d'information a partir du query, insert,update.....

    Comme je vous ai mentionné plus haut je travaillais avec Bde donc insert avec un post a la fin ou edit avec un post a la fin pour modifier. Je faisais aussi après mon post du insert une copie des champs dans des variables pour les recopier dans mon nouveau insert et update pour les corriger.

    Pour faire un résumé je désires ajouter des enregistrements dans ma table SQL avec les informations entrée dans un DbEdit la sauvegardé recopiée l'information dans le prochain enregistrement, corrigé certaine informations et enregistrer, revenir en arrière et corriger les erreurs.

    Merci

    Mario

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    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 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    En préambule, il serait bon que tu nous indique avec quelles versions (Delphi, Composants d'accès, BDD etc..) tu travailles. Si tu ne veux pas le faire à chaque fois la signature est un bon endroit pour y mettre ces informations. Il m'a fallu revoir une partie de tes messages pour déduire à peu près ton environnement de travail : Tokyo xxx, DevArt msdac et MSSQL.

    pourquoi pas Firedac ? hum, cela doit dépendre de la version de Delphi

    Je ne comprend pas encore pourquoi je n'ai pas transféré de bde a SQL avant.
    surtout que BDE était déclaré comme obsolète depuis la milieu des années 2000 par contre le choix de passer à DBExpress en rebutait plus d'un (dont moi)
    Cela dit des composants BDE like existait déjà (ZEODBO par exemple). Cependant je n'ai pas fait le choix de MSSQL

    Le fait que tu utilises les composants Devart (retrouvé en cherchant tes anciens messages) ne m'aide pas, cela fait longtemps que je ne les aient pas regardés !

    je travaillais avec Bde donc insert avec un post a la fin ou edit avec un post a la fin pour modifier.
    Tout dépend de la query un select * from table agit comme une table donc les Edit, filedbyName('col').asxxx:=valeur et Post sont toujours possibles.
    Maintenant, quand l'on veut passer par des requêtes INSERT,UPDATE,DELETE sur une requête plus compliquée (par exemple avec des jointures) ou non il y a un composant (déjà existant en BDE) UpdateSQL qui permet de créer les différentes requêtes en association avec le Dataset (c'est surtout le ne association l'important).

    Je vais écrire la théorie en fonction de ce que tu indiques , le xxx représente TFD pour Firedac, TMS pour devart, TZ pour ZEOS etc... mais aussi le T des composants BDE

    sur la forme : en non visuel un xxxConnection, une xxxQuery, un xxxUpdateSQL
    En ce qui concerne la requête, une "bonne" requête par là j'entends une requête sans * mais avec les noms de chaque colonne utilisées. C'est un peu plus long à écrire (quoique avec un bon utilitaire d'interrogation de BDD et un copier-coller ...) mais hyper explicite.
    la propriété de la xxxQuery UpdateObject (du moins est-ce ainsi nommé pour TFD et TZ) doit être renseigné.
    Un simple double clic sur le xxxUpdateSQL permet d'obtenir un dialogue qui va permettre de générer les différentes commandes possibles UPDATE, INSERT, DELETE, mais aussi d'autres selon les sets de composants (le select du) REFRESH, LOCK, UNLOCK.

    ATTENTION avant de se lancer dans la génération des SQL de ce composant, bien vérifier un paramètre correspondant au modes de mise à jour
    surtout UpdateMode qui peut avoir 3 valeurs upwhereall, upwherekeyonly,upwherechanged , selon le choix la clause WHERE des Update et Delete sera plus ou moins longue (mon conseil : upwhereKeyOnly)
    Génération automatique faite, toutes des requêtes paramétrées, rien n'empêche ensuite de modifier les SQL fournis pour adapter au besoin réel.

    Tout est alors prêt pour utiliser les TDBEdit ou autres TDBxxxxx de la VCL (mais aussi pour un programme FMX qui n'a aucun de ceux-ci )



    Je faisais aussi après mon post du insert une copie des champs dans des variables pour les recopier dans mon nouveau insert et update pour les corriger.
    donc une sorte de copier-coller (là, pas de secret, des variables privées pour contenir les valeurs. Par variables privées j'entends soit une variable par colonne soit une classe avec propriétés soit ...)
    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 habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 391
    Points : 189
    Points
    189
    Par défaut [MsSql-Rad-Studio 10.2.4 -Sdac - fastreport] Remplir un formulaire
    Bonjour

    Merci Sergio

    Vos explications vont m'aidé beaucoup à avancer dans ma compréhension du fonctionnement de SQL.

    Désolé que vous ayez pris plus de temps a me déchiffré je vais en prendre note dans mes questions futures de votre recommandation au sujet des outils utilisés.

    Voici un résumé :
    Windows 10 pro - Mssql server 2014 - Rad-studio 10.2.3 - Sdac et fastreport
    Merci encore de prendre quelques minutes pour nous aider.

    Mario

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

Discussions similaires

  1. [rad-studio MsSql] Commande insert avec parametre
    Par mario9 dans le forum Bases de données
    Réponses: 9
    Dernier message: 14/07/2018, 14h43
  2. [rad studio-MsSql] Insert et Update dans une transaction
    Par mario9 dans le forum Bases de données
    Réponses: 5
    Dernier message: 12/07/2018, 19h29
  3. [PDF] Remplir un formulaire PDF avec PHP
    Par Orionmel dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 21/10/2013, 10h14
  4. remplir un formulaire qui se met dans un champ hidden
    Par cecileb dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 07/09/2005, 16h37
  5. Réponses: 6
    Dernier message: 24/01/2005, 14h12

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