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 :

TDatabase : loginprompt sans effet, pas de fenêtre de connexion et pas de connexion


Sujet :

Bases de données Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 55
    Points : 28
    Points
    28
    Par défaut TDatabase : loginprompt sans effet, pas de fenêtre de connexion et pas de connexion
    Bonjour,

    Je n'ai pas souvent l'occasion de créer des programmes et là je suis bloqué dès le départ.
    Hyper simple : Une appli avec une form et un datamodule.
    Le dpr crée le datamodule puis la form.
    Le datamodule contient un tdatabase avec un databasename, avec loginprompt.
    Sur le créate de ma form, je fais datamodule.database.open.
    Programme terminé.

    Exécution : Erreur sql générale, aucune fenêtre de connexion, ORA-01012 : not logged on. Alias = MaBase

    Comprend pas

    J'ai fait exactement la même chose que dans d'autres programmes, j'ai copié collé mon tdatabase, j'ai essayé plein de trucs, rebooté mon pc, recommencé un nouveau programme et rien y fait.
    Je tiens à mon loginprompt et le but est d'appeler le programme avec un .bat pour préciser le "server name" sans le database, selon le besoin d'utiliser en base de prod, de recette ou de dev.

    Environnement :
    Delphi 7 entreprise, windows 7 32bits, utilisateur sans droits d'aministrateur, configuration inchangée depuis 2 ans et demi. Les autres programmes fonctionnent bien et affichent la fenêtre de connexion.

    Merci de votre aide

  2. #2
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    Alternative très proche : le datamodule est créé par la form, sur le create. Même problème.
    En conception, si on clique sur connected, la fenêtre de connexion s'affiche et ça fonctionne.
    Si je met loginprompt à false et que je renseigne le mot de passe dans params, ça fonctionne.
    Si je rajoute server name avec le nom du serveur de prod, ça fonctionne.
    Même chose en mettant le serveur de dev, avec le mot de passe adéquat, ça fonctionne.
    Mais dès que je met loginprompt à true, ça ne fonctionne plus.

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 459
    Points : 24 873
    Points
    24 873
    Par défaut
    LoginPrompt à False est idéal pour utiliser par exemple une config via un fichier INI qui indique la cible sans que cela perturbe l'utilisateur

    LoginPrompt à True, je n'utilise que pour du débug, en fait comme je n'utilise plus le TDataBase du BDE depuis 10 ans, ...

    Tu as évidemment inclus l'unité qui affiche le Prompt ?

    DBLogDlg à votre clause uses (Delphi).
    Sans cela le LoginPrompt ne sais pas quel dialogue utiliser et ne fait rien (le but étant de pouvoir fournir le sien à la place en affectant sa propre fonction à LoginDialogProc)

    Citation Envoyé par alf_idsoft Voir le message
    Je tiens à mon loginprompt et le but est d'appeler le programme avec un .bat pour préciser le "server name" sans le database, selon le besoin d'utiliser en base de prod, de recette ou de dev.:
    tu "tiens à loginprompt " mais SANS nous dire si tu veux qu'il soit True ou False
    Dans ton cas de batch (donc pas d'utilisateur derrière), il DOIT être false, et ServerName serait récupéré par ParamStr ou FindCmdLineSwitch (si ce dernier existait déjà en D7)
    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

  4. #4
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    Merci pour la réponse

    En fait, c'est une façon de faire : presque toutes les applications nécessitent une connexion à la base avec un loginprompt, surtout que des utilisateurs différents aux droits différents peuvent se connecter à un même poste. Et puis la connexion se fait par terminal server ! Pour ce programme, on va dire que la connexion peut être avec toujours le même identifiant, ce n'est pas important.
    Mais, avec LoginPrompt à true, la fenêtre de connexion ne s'affiche pas. Et avec LoginPrompt à false, la connexion échoue.

    Le uses manquant, j'y ai pensé, j'ai fait des copié-collé des uses de programmes qui marchaient... ça doit être aussi bête que ça, mais je n'ai pas trouvé
    Pour compliquer les choses, j'ai remarqué plus tard que l'une des bases était plantée, d'où un delphi qui ne réagissait pas pendant 1 à 2 minutes...

    J'ai la possibilité de faire le programme sous Visual Studio, ça doit être la 1ère fois que j'abandonne Delphi pour le c# pour cause de problème.

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/05/2015, 08h33
  2. Réponses: 1
    Dernier message: 13/02/2012, 11h16
  3. Delphi TDatabase loginprompt
    Par pey dans le forum Bases de données
    Réponses: 6
    Dernier message: 02/12/2004, 18h21
  4. Sans effet: StringGrid1->Cells[1][1][2] = c ?
    Par Xavier dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/11/2002, 10h32

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