如何使用 VB6 在 SQLite 中返回 AUTO INCREMENT 列的值

2023-07-18数据库问题
64

本文介绍了如何使用 VB6 在 SQLite 中返回 AUTO INCREMENT 列的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我在 SQLite 中有一个表:

创建表事件类型"([EventTypeID] 整数主键,[EventTypeName] VARCHAR(50) NOT NULL UNIQUE);

由于 EventTypeID 是一个整数和一个主键,这会自动使它成为一个自动递增的列,并且工作正常.

我想在表中插入一行并从 VB6 中获取新增加的值.

Dim oRs as Recordset将 oCmd 调为新命令oCmd.ActiveConnection = GetConnection()oCmd.Source = "插入 EventType (EventTypeName) 值 ('blah')"oCmd.执行

是否有一种自动检索新创建的 EventTypeID 而无需发出另一个查询的方法(从 EventType 中选择 max(EventTypeID))?

我似乎记得很久以前的 VB6 天,有一种方法可以做到这一点.

解决方案

SQLite 是否支持 SCOPE_IDENTITY?

一个>

<块引用>

查看常见问题解答.这sqlite3_last_insert_rowid()函数会做到的.小心的虽然触发

未经测试,但您应该能够在一次调用中发送两个语句.自从我写任何 VB6 以来已经有一段时间了.这也不是 SQL 注入安全.

Dim oRs as Recordset将 sSql 调暗为字符串sSql = "INSERT INTO EventType (EventTypeName) VALUES ('blah'); SELECT last_insert_rowid() FROM EventType"oRs.Open sSql oConn

I have a table in SQLite:

CREATE TABLE "EventType" 
(
[EventTypeID] INTEGER PRIMARY KEY, 
[EventTypeName] VARCHAR(50) NOT NULL UNIQUE
);

Since EventTypeID is an integer and a primary key, that automatically makes it an auto-incrementing column, and that works fine.

I'd like to insert a row into the table and get the newly incremented value from VB6.

Dim oRs as Recordset
dim oCmd as new Command

oCmd.ActiveConnection = GetConnection()
oCmd.Source = "insert into EventType (EventTypeName) values ('blah')"
oCmd.Execute

Is there an automatic way to retrieve the newly created EventTypeID without having to issue another query (select max(EventTypeID) from EventType))?

I seem to remember from VB6 days long time ago, that there was a way to do that.

解决方案

Does SQLite support SCOPE_IDENTITY?

Check out the FAQ. The sqlite3_last_insert_rowid() function will do it. Careful of triggers though

Not tested, but you should be able to send both statements in one call. It's been a while since I wrote any VB6. Also this is not SQL injection safe.

Dim oRs as Recordset
dim sSql as String
sSql = "INSERT INTO EventType (EventTypeName) VALUES ('blah'); SELECT last_insert_rowid() FROM EventType"
oRs.Open sSql oConn

这篇关于如何使用 VB6 在 SQLite 中返回 AUTO INCREMENT 列的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

SQL 子句“GROUP BY 1"是什么意思?意思是?

SQL 子句“GROUP BY 1"是什么意思?意思是?

What does SQL clause quot;GROUP BY 1quot; mean?(SQL 子句“GROUP BY 1是什么意思?意思是?)...
2024-04-16 数据库问题
62

如何在MySQL中为每个组选择第一行?

如何在MySQL中为每个组选择第一行?

How to select the first row for each group in MySQL?(如何在MySQL中为每个组选择第一行?)...
2024-04-16 数据库问题
13

MySQL - 获取最低值

MySQL - 获取最低值

MySQL - Fetching lowest value(MySQL - 获取最低值)...
2024-04-16 数据库问题
8

在 cmakelist.txt 中添加和链接 mysql 库

在 cmakelist.txt 中添加和链接 mysql 库

Add and link mysql libraries in a cmakelist.txt(在 cmakelist.txt 中添加和链接 mysql 库)...
2024-04-16 数据库问题
41

考勤数据库的良好数据库设计(架构)是什么?

考勤数据库的良好数据库设计(架构)是什么?

What is a good database design (schema) for a attendance database?(考勤数据库的良好数据库设计(架构)是什么?)...
2024-04-16 数据库问题
7

子类型的表关系

子类型的表关系

Table relationship for subtypes(子类型的表关系)...
2024-04-16 数据库问题
10

热门文章

1ORA-01747: 无效的 user.table.column、table.column 或列规范 2ORA-01461: 只能为插入到 LONG 列而绑定 LONG 值-查询时发生 3INSERT 语句与 FOREIGN KEY 约束冲突 4MySql 错误:无法更新存储函数/触发器中的表,因为它已被调用此存储函数/触发器的语句使用 5MySQL:将逗号分隔的列表拆分为多行 6sqlite3 在数据库中插入和读取 BLOB 数据 7ORA-01830:日期格式图片在转换整个输入字符串之前结束/选择日期查询的总和 8MySQL 错误:UPDATE 和 LIMIT 的错误使用

热门精品源码

最新VIP资源

1多功能实用站长工具箱html功能模板 2多风格简历在线生成程序网页模板 3论文相似度查询系统源码 4响应式旅游景点宣传推广页面模板 5在线起名宣传推广网站源码 6酷黑微信小程序网站开发宣传页模板 7房产销售交易中介网站模板 8小学作业自动生成程序