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

Delphi Discussion :

bdd Sqlite, Table.CopyDataSet, Le champ clé primaire est renuméroté


Sujet :

Delphi

  1. #21
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    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 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par GrPtj Voir le message
    Mais il est étrange que j'ai le bon résultat avec une valeur plus petite ?
    Non, il y a débordement de capacité tout simplement >32.767 (ou 64k et des brouettes si non signé) . AMHA un problème de conversion du BatchMove ou de déclaration de champs, c'est à ça que servent mappings : affiner les conversions
    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

  2. #22
    Membre du Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2014
    Messages : 102
    Points : 53
    Points
    53
    Par défaut
    en effet, n'ayant pas rencontré de pb, je n'avais jamais trop regardé la taille maxi pour un entier ...
    Comment se fait-il que je ne rencontre pas ce problème en travaillant sur ma table en direct,
    le REFDB va actuellement jusqu'à 75751 et je n'ai pas d'erreur avec ce type de requete : where REFDB = :WREFDB
    Quelle est la différence avec localsql ?

  3. #23
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    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 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    en effet, n'ayant pas rencontré de pb, je n'avais jamais trop regardé la taille maxi pour un entier ...
    c'est du B.A.B.A et à toujours tenir à l'esprit
    https://www.promotic.eu/en/pmdoc/Sub.../DataTypes.htm
    de plus Il y a entier (smallint) entier (Integer) et (entier) BIGINT et je pourrais en ajouter d'autres
    Quelle est la différence avec localsql ?
    ce n'est pas tant avec LocalSQL que des différences entre Firebird et SQLite ainsi que des interprétations faites c'est là que les maprules interviennent et quelquefois, celles par défaut ne sont pas correctes. De même que le nombres de Bits (32/64) peut être un facteur supplémentaire de confusion du compilateur
    http://docwiki.embarcadero.com/RADSt...e_avec_FireDAC chapitre "Mappage de SQLite sur les types de données FireDAC"
    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

  4. #24
    Membre du Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2014
    Messages : 102
    Points : 53
    Points
    53
    Par défaut
    Merci pour ces informations,
    Si j'ai bien compris le probleme de limite vient de :
    FireDAC utilise une structure de données Integer de 4 octets de long pour dtInt32 (<= 2147483647)
    Sqlite SMALLINT | INT16 [UNSIGNED] dtInt16 / dtUInt16 (<= 32767)

    Et pour y remédier il faut créer une collection MapRules du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    with MapRules.Add do begin
         ScaleMin := 0;
         ScaleMax := 0;
         PrecMin := 5;
         PrecMax := 8;
         SourceDataType := dtBcd;
         TargetDataType := dtInt32;
       end;
    Est-il possible de ne créer que cette règle de mappage et que pour le reste ce soit les valeurs par défaut ?

  5. #25
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    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 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par GrPtj Voir le message
    Est-il possible de ne créer que cette règle de mappage et que pour le reste ce soit les valeurs par défaut ?
    Oui, bien sûr mais attention à mettre ownmaprules à true sans cela, cela ne sert à rien. Toutefois je ne suis pas sur que ce soit la bonne règle qui soit codée

    S'il y a toujours Batchmove, je pense déjà l'avoir cité, il y a les maprules qu'il faudrait simplement modifier

    NB Sqlite à le type INTEGER aussi
    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

  6. #26
    Membre du Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2014
    Messages : 102
    Points : 53
    Points
    53
    Par défaut
    Merci encore pour votre aide si efficace et rapide

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

Discussions similaires

  1. [AC-2003] [TABLE] contenu des champs entre une clé primaire et clé étrangère
    Par Chagui dans le forum Modélisation
    Réponses: 2
    Dernier message: 29/07/2010, 15h43
  2. [SQL] Utiliser un autre champ dans une table si le champ par défaut est vide
    Par Mawashigeri dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 16/01/2008, 13h31
  3. Creation de table avec un champ texte comme clé primaire
    Par Sytchev3 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 30/07/2007, 11h40
  4. MAJ d'un champ d'une table avec condition sur clef primaire commune
    Par ar|equin dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 15/05/2007, 13h57
  5. Réponses: 6
    Dernier message: 25/03/2006, 17h46

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