Page 1 sur 1

sqlite_sequence

Publié : dim. 19/févr./2017 11:53
par PCPixMusic
Bonjour, J'ai écrit un programme qui utilise une base de données sqlite. En effectuant un contrôle de fichier avec le programme Sqlite Vision écrit par Falsam, je me rends compte qu'il manque une table dans "sqlite_sequence". Sqlite_sequence est généré visiblement de façon automatique par PureBasic, car je n'ai écrit nul part ça dans mon code. Cette erreur n'affecte pas pour le moment la gestion de ma base de données. Voici le code de ma procedure de création de base de données.

Merci d'avance à celui qui sera m'en dire plus.

Bon Dimanche à toutes et tous. :mrgreen:

Code : Tout sélectionner

Procedure DB_Init_Tables(); Init Tables
  Protected plFile.l
  Protected psSQLRequest.s
  Protected psSQLError.s  
  Protected Buffer.s
  
  Protected SNumFacture_0.s
 
  UseSQLiteDatabase()
 
  If FileSize(#PB_Compiler_FilePath+"Bot_Memory.sqlite") < 0
    plFile = CreateFile(#PB_Any, #PB_Compiler_FilePath+"Bot_Memory.sqlite")
    If plFile
      CloseFile(plFile)
    EndIf
  EndIf
 
  glDBSQLite = OpenDatabase(#PB_Any, #PB_Compiler_FilePath+"Bot_Memory.sqlite", "", "", #PB_Database_SQLite)
   
  If glDBSQLite = 0
    MessageRequester("Ancilla", DatabaseError())
    End
  Else ;If plFile  
     
    psSQLRequest = "CREATE TABLE IF NOT EXISTS contacts ("                     +  
                   "IDcontacts INTEGER PRIMARY KEY AUTOINCREMENT Not NULL, "   +                     
                   "nom TEXT,"                                                 + 
                   "prenom TEXT,"                                              +
                   "age TEXT,"                                                 +
                   "yeux TEXT,"                                                +
                   "cheveux TEXT,"                                             +
                   "taille TEXT,"                                              +
                   "poids TEXT,"                                               +
                   "sexe TEXT,"                                                +
                   "peau TEXT,"                                                +
                   "sante TEXT,"                                               +
                   "tenue TEXT,"                                               +
                   "lien TEXT,"                                                +
                   "emploi TEXT,"                                              +
                   "aime TEXT,"                                                +
                   "deteste TEXT,"                                             +
                   "couleur_preferee TEXT,"                                    +
                   "plat_prefere TEXT,"                                        +
                   "boisson_preferee TEXT,"                                    +
                   "animal_prefere TEXT,"                                      +
                   "fleur_preferee TEXT,"                                      +
                   "caractere TEXT,"                                           +                            
                   "argent TEXT,"                                              +
                   "contact_photo BLOB,"                                       +
                   "smiley BLOB,"                                              +
                   "contact_photo_size INTEGER,"                               +                   
                   "smiley_size INTEGER"                                       +
                    ")"
    
    DatabaseUpdate( glDBSQLite, psSQLRequest)
    psSQLError = DatabaseError()    
    
    
    psSQLRequest = "CREATE TABLE If Not EXISTS culture (IDculture INTEGER PRIMARY KEY, date TEXT, personnalite TEXT, titre TEXT, type TEXT, sujet TEXT)"
    
    DatabaseUpdate( glDBSQLite, psSQLRequest)
    psSQLError = DatabaseError()    
    
    
    psSQLRequest = "CREATE TABLE IF NOT EXISTS infos_bot ("                    +  
                   "IDinfos_bot INTEGER PRIMARY KEY AUTOINCREMENT Not NULL, "  +                   
                   "nom TEXT,"                                                 +
                   "prenom TEXT,"                                              +
                   "age TEXT,"                                                 +
                   "yeux TEXT,"                                                +
                   "cheveux TEXT,"                                             +
                   "taille TEXT,"                                              +
                   "poids TEXT,"                                               +
                   "sexe TEXT,"                                                +
                   "peau TEXT,"                                                +
                   "sante TEXT,"                                               +
                   "tenue TEXT,"                                               +
                   "lien TEXT,"                                                +
                   "emploi TEXT,"                                              +
                   "aime TEXT,"                                                +
                   "deteste TEXT,"                                             +
                   "couleur_preferee TEXT,"                                    +
                   "plat_prefere TEXT,"                                        +
                   "boisson_preferee TEXT,"                                    +
                   "animal_prefere TEXT,"                                      +
                   "fleur_preferee TEXT,"                                      + 
                   "caractere TEXT,"                                           +
                   "argent TEXT,"                                              +
                   "contact_photo BLOB,"                                       +
                   "smiley BLOB,"                                              +
                   "contact_photo_size INTEGER,"                               +
                   "smiley_size INTEGER"                                       +
                   ")"   
                 
                   
    DatabaseUpdate( glDBSQLite, psSQLRequest)
    psSQLError = DatabaseError()    
    
    
    psSQLRequest = "CREATE TABLE IF NOT EXISTS langage ("                    +  
                   "IDlangage INTEGER PRIMARY KEY AUTOINCREMENT Not NULL, "  +  
                   "mot TEXT,"                                                +
                   "def1 TEXT,"                                               +
                   "def2 TEXT,"                                               +
                   "def3 TEXT,"                                               +
                   "def4 TEXT,"                                               +
                   "def5 TEXT,"                                               +
                   "def6 TEXT,"                                               +
                   "def7 TEXT,"                                               +
                   "def8 TEXT,"                                               +
                   "def9 TEXT,"                                               +
                   "def10 TEXT,"                                              +
                   "syno1 TEXT,"                                              +
                   "syno2 TEXT,"                                              +
                   "syno3 TEXT,"                                              +
                   "syno4 TEXT,"                                              +
                   "syno5 TEXT,"                                              +
                   "syno6 TEXT,"                                              +
                   "syno7 TEXT,"                                              +
                   "syno8 TEXT,"                                              +
                   "syno9 TEXT,"                                              +
                   "syno10 TEXT,"                                             +
                   "antonyme TEXT,"                                           +
                   "genre TEXT,"                                              +
                   "mode TEXT,"                                               +
                   "temps TEXT,"                                              +
                   "groupe TEXT,"                                             +
                   "pronom TEXT,"                                             +
                   "m_f_n TEXT"                                               +
                   ")"
    
                          
    DatabaseUpdate( glDBSQLite, psSQLRequest)
    psSQLError = DatabaseError()            
   

    ; Il y a t'il eu une erreur ?
    If psSQLError <> ""
      MessageRequester("Ancilla - DB_Init_Tables()", psSQLError)
    EndIf 

EndIf

Re: sqlite_sequence

Publié : dim. 19/févr./2017 12:01
par microdevweb
Bonjour

Je penses que ce n'est pas pb qui crée cette table mains plutôt le programme de falsam. Lui saura te confirmé la chose

Re: sqlite_sequence

Publié : dim. 19/févr./2017 12:28
par falsam
microdevweb a écrit :Je penses que ce n'est pas pb qui crée cette table mains plutôt le programme de falsam. Lui saura te confirmé la chose
Et non .... tout faux le Microdevweb ^^

Pour résumé : La table sqlite_sequence est créée et initialisée automatiquement lorsqu'une table normale contient une colonne AUTOINCREMENT.

Un peu plus d'info détaillé en anglais paragraphe 3 http://sqlite.org/autoinc.html

Re: sqlite_sequence

Publié : dim. 19/févr./2017 12:52
par microdevweb
Merci pour l'info Falsam :wink:

Re: sqlite_sequence

Publié : dim. 19/févr./2017 23:26
par PCPixMusic
Merci beaucoup.

J'ai du mal avec l'anglais pour l'article du lien. Je ne trouve pas d'explication en Français.

Toutes mes tables apparaissent dans la liste des tables et elles fonctionnent, mais il manque la table culture dans cette sqlite_sequence.
:/

Mais la base de données fonctionne. Au passage, j'ai la version 1.36 de Sqlite Vision, malheureusement, si j'enregistre plus de 13 enregistrements, le programme plante. :/