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 :

PB d'écriture sur MSSQLServer à partir d'un service


Sujet :

Bases de données Delphi

  1. #21
    Membre confirmé Avatar de heid
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Mai 2002
    Messages : 388
    Points : 597
    Points
    597
    Par défaut
    tu sais quel message d'erreur il te met dans le services?

  2. #22
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 49
    Points : 42
    Points
    42
    Par défaut
    unbelivable ! Ca marche ! (avec le Prompt à false et le password dans la ConnectionString...)

    Bon, ben j'ai plus qu'a modifier le code dans mon service et à tester. Merci d'avance.

    Dunsany
    Nul homme ne se baigne deux fois dans le même fleuve car, la seconde fois, ce n'est plus le même fleuve et ce n'est plus le même homme. (Héraclite)

  3. #23
    Membre émérite
    Avatar de NoisetteProd
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    1 905
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 905
    Points : 2 614
    Points
    2 614
    Par défaut
    tu veux dire, que ca marche en appli ??

    <edit> Chouette ! j'ai retrouvé ma tête ! </edit>
    Fais cogiter ta Noisette !!

    Participez à la page SOURCES Delphi !

    Découvrez le Défi Delphi

    Mon Mail

  4. #24
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 49
    Points : 42
    Points
    42
    Par défaut
    Oui, ça marche en appli. Je vais essayer en serveur...(ca vient de la présence du mdp dans la ConnectionString, c'est certain).

    Dunsany
    Nul homme ne se baigne deux fois dans le même fleuve car, la seconde fois, ce n'est plus le même fleuve et ce n'est plus le même homme. (Héraclite)

  5. #25
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 49
    Points : 42
    Points
    42
    Par défaut
    Hum...Ca a pas l'air de passer en service...Gasp. Je continue des tests.

    Dunsany
    Nul homme ne se baigne deux fois dans le même fleuve car, la seconde fois, ce n'est plus le même fleuve et ce n'est plus le même homme. (Héraclite)

  6. #26
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 49
    Points : 42
    Points
    42
    Par défaut
    Après plusieurs tests, mon serveur (en service) échoue à écrire dans la base. Ca parait incroyable. Ca vient de la Classe Tservice de Borland ou de MS SQL Server ? Ou de l'OS ?
    Nul homme ne se baigne deux fois dans le même fleuve car, la seconde fois, ce n'est plus le même fleuve et ce n'est plus le même homme. (Héraclite)

  7. #27
    Membre émérite
    Avatar de NoisetteProd
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    1 905
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 905
    Points : 2 614
    Points
    2 614
    Par défaut
    Salut !

    Après de longues recherches (il est 4h30 du mat !), j'ai fini par trouver ce qui merde...

    Déjà l'erreur etait (j'ai du mettre un log !) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    08/08/2004 03:09:47 : CoInitialize n'a pas été appelé
    En fait, j'ai trouvé deux solutions :
    mettre en premier dans le ServiceStart
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.Initialize;
    mettre en premier dans le ServiceStart Je ne comprends pas trop pourquoi ca marche grâce à ça... Je suis preneur d'explications ! (Borland est pas tres bavard)

    Voilà Dunsany ! Dis moi si ca le fait pour toi !
    J'espère un jour avoir besoin de tout ça !
    Fais cogiter ta Noisette !!

    Participez à la page SOURCES Delphi !

    Découvrez le Défi Delphi

    Mon Mail

  8. #28
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 49
    Points : 42
    Points
    42
    Par défaut
    En fait tu as deux types de service sous Delphi (D6 en tout cas): Service & Service Application. Le premier ne se comporte pas comme une application (il n'a pas de Unit Projet). Le second est un service qui hérite des propriétés et méthodes d'une application. Il dispose d'une Unit Projet (que l'on peut consulter en faisant Projet/voir le source).
    J'avais choisi de faire un service application, donc pas de pb pour la méthode Application.Initialize (elle est inscrite en standard dans l'Unit Projet).
    Fausse joie, mais merci qd même !


    Dunsany
    Nul homme ne se baigne deux fois dans le même fleuve car, la seconde fois, ce n'est plus le même fleuve et ce n'est plus le même homme. (Héraclite)

  9. #29
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 49
    Points : 42
    Points
    42
    Par défaut
    Je viens de voir dans un forum US qu'un service n'initialise pas COM à l'inverse d'une application classique. Il faut donc effectivement utiliser CoInitialize(nil); dans la procédure OnCreate du service et CoUnInitialize(); dans la procédure OnDestroy du service (ne pas oublier de mettre ActiveX en uses).
    CoInitialize pour Initilisation de l'interface COM (sur laquelle les composants ADO sont basés).

    N'empêche ça marche toujours pas...
    Nul homme ne se baigne deux fois dans le même fleuve car, la seconde fois, ce n'est plus le même fleuve et ce n'est plus le même homme. (Héraclite)

  10. #30
    Membre émérite
    Avatar de NoisetteProd
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    1 905
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 905
    Points : 2 614
    Points
    2 614
    Par défaut
    Citation Envoyé par Dunsany
    En fait tu as deux types de service sous Delphi (D6 en tout cas): Service & Service Application. Le premier ne se comporte pas comme une application (il n'a pas de Unit Projet). Le second est un service qui hérite des propriétés et méthodes d'une application. Il dispose d'une Unit Projet (que l'on peut consulter en faisant Projet/voir le source).
    J'avais choisi de faire un service application, donc pas de pb pour la méthode Application.Initialize (elle est inscrite en standard dans l'Unit Projet).
    Soit ! Mais moi aussi, j'ai fais un service Application, et pour autant, (même si dans le projet...) il faut que je mette Application.Initialise dans le ServiceStart ! Sinon, cela ne fonctionne pas.

    De plus, moi, avec CoInitialize(nil); ca marche quand je le met dans le ServiceStart...

    Une petite question, en passant, ton ADOConnection n'est pas activé par défaut ??? Si oui, ce n'est pas une tres bonne idée... Il faudrais mieux l'activé après le CoInitialize(nil);

    Donne moi des news !
    Fais cogiter ta Noisette !!

    Participez à la page SOURCES Delphi !

    Découvrez le Défi Delphi

    Mon Mail

  11. #31
    Membre émérite
    Avatar de NoisetteProd
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    1 905
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 905
    Points : 2 614
    Points
    2 614
    Par défaut
    on en est où ??
    Fais cogiter ta Noisette !!

    Participez à la page SOURCES Delphi !

    Découvrez le Défi Delphi

    Mon Mail

  12. #32
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 49
    Points : 42
    Points
    42
    Par défaut
    Après quelques jours de repos mérité, je peut apporter le tag résolu a ce pb. Tag qui revient de droit à NoisetteProd comme chacun l'aura compris.
    Merci à tous.

    Dunsany
    Nul homme ne se baigne deux fois dans le même fleuve car, la seconde fois, ce n'est plus le même fleuve et ce n'est plus le même homme. (Héraclite)

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Débutant] Automatisation d'une tâche sur BDD à partir d'un service WCF
    Par mrflamby dans le forum Windows Communication Foundation
    Réponses: 3
    Dernier message: 14/05/2015, 21h52
  2. problème écriture sur un fichier
    Par drinkmilk dans le forum MFC
    Réponses: 4
    Dernier message: 24/06/2007, 00h08
  3. Lecture / écriture sur un port com
    Par dorian833 dans le forum C++
    Réponses: 7
    Dernier message: 07/07/2005, 15h20
  4. [MFC] Notification d'écriture sur le disque
    Par Yellowmat dans le forum MFC
    Réponses: 1
    Dernier message: 28/06/2005, 12h00
  5. droits en écriture sur le réseau
    Par julien20vt dans le forum MFC
    Réponses: 4
    Dernier message: 25/03/2004, 11h29

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