【问题标题】:VB6 application - automatically incremented number checkVB6 应用程序 - 自动递增的数字检查
【发布时间】:2015-11-17 14:56:06
【问题描述】:

我正在构建一个小型应用程序,但遇到了需要解决的问题。当我将新客户端插入 SQL-SERVER 时,我需要创建一个 ID 号以与客户端一起使用。我在引用表中有一个值,比如说 - 1000,它从表中拉出,递增 1,然后放回 ref 表中,值 1001 被分配给客户端。在它被保存到客户端之前,我将“TOL”添加到数字中 - 所以当保存完成时,ID 是 TOL1001。我需要解决的问题是检查 tblClient_TABLE,以确保 ID TOL1001 在为新客户端插入之前不存在。

我不确定我应该在哪里做,因为在 SAVE 时,我调用了递增数字的函数,将 TOL 分配给它并将值存储在一个不可见的文本框中,所以当我插入时,它只是从文本框中提取值... strSQL = "插入 tblClient_TABLE (ID) 值 ("txtIDnumber.text")

我显然有更多数据要插入,只是我正在努力寻找一种逻辑方法来检查已经存在的 ID。

感谢您的任何想法,帮助!

【问题讨论】:

  • 请帮自己一个忙,阅读一下sql注入。你的方法听起来像一个教科书的例子。您需要参数化您的查询。要解决您的问题,您应该考虑使用 EXISTS。

标签: sql-server vb6


【解决方案1】:

您的数据库能够使用标识列 (=autoincrement)。因此,如果您插入一条新记录,标识列将获得下一个值(您可以依赖唯一性)。

你是怎么得到这个号码的? insert 语句(对于 mssql)有一个“输出插入”子句,如果您将 ado 与 executescalar 一起使用,您将获得插入的 id。

SQL命令(必须为ado命令添加vb6代码)

INSERT INTO [TABLENAME] ( [COL1], [COL2] ) OUTPUT INSERTED.MYID VALUES ( @COL1, @COL2 )

...在此处添加您的参数值 ....

result = adoCommand.ExecuteScalar()

(类似的东西,办公室里没有 VB6 ...)

【讨论】:

    猜你喜欢
    • 2011-06-21
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多