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

Lazarus Pascal Discussion :

SQLite : SIGSEGV avec des composants créés à l'exécution, mais pas à la conception


Sujet :

Lazarus Pascal

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 71
    Points : 60
    Points
    60
    Par défaut SQLite : SIGSEGV avec des composants créés à l'exécution, mais pas à la conception
    Je cherche à créer une unité avec une classe s'occupant de tout ce qui concerne le SQL, que je puisse réutiliser. Je suis parti d'une unité conçu pour un autre projet sous windows et qui fonctionne bien.

    Mais sous Linux (Mint) une exception est levé à la création de la connexion, que ce soit par un TSQLite3Connection ou un TSQLConnector.

    Par contre si j'utilise les mêmes composants (dont les TSQLTransition et TSQLQuery) ajouté à la conception sur le formulaire, là tout fonctionne bien.

    Donc j'ai une solution pour ce projet mais non satisfaisante puisque l'unité et la classe ne sont pas utilisables et surtout parce que ce comportement est incompréhensible.

    Je ne trouve aucun doc expliquant cela.

    Voici le code, ça plante dès la première ligne du with (cSQL est ma classe).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    cSQL.Create();
      with cSQL do
        begin
          conn:=TSQLConnector.Create(nil);
          conn.ConnectorType:='SQLite3';
          Conn.DatabaseName:='db.sqlite';
          Conn.Transaction := TSQLTransaction.Create(Connexion);
          Requete:=TSQLQuery.Create(nil);
          Requete.PacketRecords:=200;
          Requete.DataBase:=Conn;
          Requete.Transaction:=Conn.Transaction;
          Conn.Open;
        end;
    Config :
    − Lazarus 1.6+dfsg-1 FPC 3.0.0
    − Linux Mint (Sylvia il me semble).

    Merci.

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 302
    Points
    11 302
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    La syntaxe correcte pour créer l'objet puis l'utiliser grâce à la référence qu'on garde sur lui est en Pascal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cSQL := TcSQL.Create();
      with cSQL do
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 695
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    Appeler le constructeur d'un objet déjà instancié ne pose pas de problème en soi. La partie allocation est cependant ignorée et Create se comporte dès lors comme une simple méthode. C'est pour cela que tu ne vois pas d'erreur si le composant est présent dès la conception.

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/10/2007, 09h00
  2. Réponses: 4
    Dernier message: 03/07/2007, 09h42
  3. Grosse appli avec des composants Swing ?
    Par marmotte dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 13/10/2006, 14h53
  4. Problème avec des composants non déclarés
    Par vbcasimir dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/01/2005, 11h17
  5. Erreur EACCESSVIOLATION avec des compsts créés dynamiquement
    Par tsikpemoise dans le forum Bases de données
    Réponses: 4
    Dernier message: 28/02/2004, 19h05

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