PureBasic

Forums PureBasic
Nous sommes le Mer 26/Juin/2019 4:57

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 2 messages ] 
Auteur Message
 Sujet du message: [Tuto] SQlite : RowID
MessagePosté: Jeu 27/Oct/2016 14:29 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6823
Localisation: IDF (Yvelines)
RowId Qu'est ce que c'est ?
Chaque entrée dans des tables SQLite a une clé 64 bits entier signé unique appelé le rowid.

Cette clé est toujours disponible en tant que colonne non déclaré nommé rowid.

Si la table a une colonne de type INTEGER PRIMARY KEY alors la colonne est un autre alias pour le rowid.

Nota : Row = Rangée & id = Identifiant (Oui j'ai osé mettre ça ^^)

Comment connaitre le rowid du dernier enregistrement inséré ?

La procédure DatabaseLastInsertRowId(Database) permet de connaitre le rowid d'un enregistrement que vous venez d'insérer.
Code:
Procedure DatabaseLastInsertRowId(Database)
  If DatabaseQuery(Database, "Select last_insert_rowid()")
    NextDatabaseRow(Database)
    ProcedureReturn GetDatabaseLong(Database, 0)
  Else
    ProcedureReturn -1
  EndIf
EndProcedure

■ Exemple avec une base de données créer en mémoire contenant une table produits dans laquelle on va insérer deux enregistrements.
Code:
Enumeration
  #DataBase
EndEnumeration

Declare DatabaseLastInsertRowId(Database)

UseSQLiteDatabase()

Global ReqSql.s

;Création d'une base de donnée en mémoire
OpenDatabase(#DataBase, ":memory:", "", "")

;Creation de la table produits (trés simplifié)
ReqSql = "CREATE TABLE Produits ("
ReqSql + "idauto INTEGER PRIMARY KEY,"   ;Identification auto
ReqSql + "nom TEXTE,"                    ;Nom du produit
ReqSql + "pu INTEGER"                    ;Prix unitaire
ReqSql + ");"
DatabaseUpdate(#DataBase, ReqSql)         

;Ajout de deux produits
ReqSql = "INSERT INTO produits (nom, pu) values ("
ReqSql + Chr(34) + "Règle" + Chr(34)+Chr(44)      ;Nom du produit
ReqSql + Chr(34) + 10 + Chr(34)+")"               ;Montant
DatabaseUpdate(#Database, ReqSql)
Debug "Row id = " + DatabaseLastInsertRowId(#Database)

ReqSql = "INSERT INTO produits (nom, pu) values ("
ReqSql + Chr(34) + "Poêle" + Chr(34)+Chr(44)      ;Nom du produit
ReqSql + Chr(34) + 9 + Chr(34)+")"                ;Montant
DatabaseUpdate(#Database, ReqSql)
Debug "Row id = " + DatabaseLastInsertRowId(#Database)

;Liste des produits
ReqSql = "SELECT idauto, nom, pu FROM produits"
DatabaseQuery(#Database, ReqSql)

While NextDatabaseRow(#Database)           
  Debug "IdAuto : " + GetDatabaseLong(#Database, 0) + " Produit : " + GetDatabaseString(#Database, 0) + " P.U. : " + Str(GetDatabaseLong(#Database, 1))
Wend

Procedure DatabaseLastInsertRowId(Database)
  If DatabaseQuery(Database, "Select last_insert_rowid()")
    NextDatabaseRow(Database)
    ProcedureReturn GetDatabaseLong(Database, 0)
  Else
    ProcedureReturn -1
  EndIf
EndProcedure


Ca pourrait vous interesser.
- Créer et mettre à jour une base de données Sqlite
- SQLite Explorer
- Insérer des images dans une base de données SQlite
- Jointure avec 3 tables d'une base de données.

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: [Tuto] SQlite : RowID
MessagePosté: Jeu 27/Oct/2016 18:07 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6623
Localisation: Isere
Merci de TUTO 8)

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 2 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
cron

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye