Comment faire pour retourner la valeur de l'INCRÉMENT AUTOMATIQUE de la colonne dans SQLite avec VB6
J'ai une table dans SQLite:
CREATE TABLE "EventType"
(
[EventTypeID] INTEGER PRIMARY KEY,
[EventTypeName] VARCHAR(50) NOT NULL UNIQUE
);
Depuis EventTypeID est un entier et d'une clé primaire, ce qui le rend automatiquement un auto-incrémentation de la colonne, et qui fonctionne très bien.
J'aimerais insérer une ligne dans la table et obtenir la nouvelle valeur incrémentée à partir de VB6.
Dim oRs as Recordset
dim oCmd as new Command
oCmd.ActiveConnection = GetConnection()
oCmd.Source = "insert into EventType (EventTypeName) values ('blah')"
oCmd.Execute
Est-il un moyen automatique pour récupérer le nouvellement créé EventTypeID sans avoir à envoyer une autre requête (select max(EventTypeID) à partir de EventType))?
Il me semble me rappeler à partir de VB6 jours il ya longtemps, qu'il y avait un moyen de le faire.
Double Possible de le support SQLite SCOPE_IDENTITY?
OriginalL'auteur AngryHacker | 2009-02-10
Vous devez vous connecter pour publier un commentaire.
Ne SQLite soutien SCOPE_IDENTITY?
Pas testé, mais vous devriez être en mesure d'envoyer les deux états en un seul appel. Il a été un moment depuis que j'ai écrit tout VB6. Aussi ce n'est pas d'injection SQL en sécurité.
donc, ce n'est Insert() de retour alors? - Je sais que je peux regarder, mais il pourrait être utile ici par souci d'exhaustivité, depuis que j'ai trouvé ce post.
OriginalL'auteur bendewey
Exécuter cette requête à l'intérieur de votre code:
OriginalL'auteur user3237970
Je n'utilise pas de VB, je ne sais donc pas l'interface que vous utilisez avec votre base de données, mais, comme bendewey dit, il y a une fonction dans l'API c appelé
sqlite3_last_insert_rowid()
qui sera de retour la principale clé entière pour la dernière ligne insérée, vous pouvez rechercher une fonction similaire dans votre interface.Si cela ne fonctionne pas, vous pouvez utiliser le SQLite-requête spécifique:
OriginalL'auteur Kyle Cronin
Vous pouvez appeler
SELECT last_insert_rowid()
après votre insertionOriginalL'auteur Assaf Lavie
Si l'utilisation
retourne la dernière
rowid
, vous pouvez utiliser :pour obtenir la dernière
rowid
pour un individu de tablerowid
pour une table individuelle.OriginalL'auteur sgarcia