VB中调用SQL的一些小问题
来源:互联网 发布:abc优化算法流程图 编辑:程序博客网 时间:2024/05/16 09:54
这一段时间,敲了两个系统,遇到了很多“小问题”,总结一下。
1.对象变量或With块变量未设置
这是我们经常遇到的问题,产生此类问题的原因很多,我们这段时间是用VB和数据库交互的,所以现阶段引起此类问题的主要原因是:数据库未连接!解决此问题的方法是查看数据库连接字符串是否正确,进行测试。
2.BOF或EOF中有一个是真,或者当前记录已被删除,要求一个当前记录
用到数据库时经常出现这个问题,可能原因是查询的数据表里无记录,当用到MoveFirst或MoveLast等时就会产生此类错误,因为数据表为空时EOF和BOF同时为True。解决方法有很多种,比如加上判断:
If mrc.RecordCount = 0 Then '判断记录集是否存在记录 MsgBox "没有记录!" Exit Sub End If或者使用错误处理:
On ErrorResumeNext rss.MoveFirst if Err=3021 then Response.write "无数据!" End If3.多步OLE DB操作产生错误
产生此错误的原因可能是:数据类型或长度的输入与数据库设定的不符,导致输入的数据无法存入数据库中!解决方法是根据报错的代码所显示的数据库表,查看数据库表中的类型和长度,并在输入时设定上限制。为了防止这类问题的发生,在设计时,应该先设计好数据库中各字段存储的数据类型,根据类型和长度,在VB中限定相对应的类型和长度,防止此类错误的发生。
4.对象关闭时不允许操作
这个问题很简单,但是很容易犯这样的错误,产生原因:如果需要某些表中的记录,则需要对表进行操作,表示打开表失败。解决方法是测试所需要的表是否进行了打开的操作,进行测试!
5.查询关键字附近有语法错误
这个问题报错时会报 “对象变量或With块变量未设置” 需要调试查出真正出问题的地方,产生此问题的一般原因是数据库表的名称和数据库的关键字相同,解决方法很简单,将数据库表名用[ ]括起来就行了!
下面这些词都是T-SQL语句中的关键字,在你写SQL语句,存储过程,触发器或字段命名等时要避免使用这些词!
ADD
EXIT
PRIMARY
ALL
FETCH
ALTER
FILE
PRIVILEGES
AND
FILLFACTOR
PROC
ANY
FLOPPY
PROCEDURE
AS
FOR
PROCESSEXIT
ASC
FOREIGN
PUBLIC
AUTHORIZATION
FREETEXT
RAISERROR
AVG
FREETEXTTABLE
READ
BACKUP
FROM
READTEXT
BEGIN
FULL
RECONFIGURE
BETWEEN
GOTO
REFERENCES
BREAK
GRANT
REPEATABLE
BROWSE
GROUP
REPLICATION
BULK
HAVING
RESTORE
BY
HOLDLOCK
RESTRICT
CASCADE
IDENTITY
RETURN
CASE
IDENTITY_INSERT
REVOKE
CHECK
IDENTITYCOL
RIGHT
CHECKPOINT
IF
ROLLBACK
CLOSE
IN
ROWCOUNT
CLUSTERED
INDEX
ROWGUIDCOL
COALESCE
INNER
RULE
COLUMN
INSERT
SAVE
COMMIT
INTERSECT
SCHEMA
COMMITTED
INTO
SELECT
COMPUTE
IS
SERIALIZABLE
CONFIRM
ISOLATION
SESSION_USER
CONSTRAINT
JOIN
SET
CONTAINS
KEY
SETUSER
CONTAINSTABLE
KILL
SHUTDOWN
CONTINUE
LEFT
SOME
CONTROLROW
LEVEL
STATISTICS
CONVERT
LIKE
SUM
COUNT
LINENO
SYSTEM_USER
CREATE
LOAD
TABLE
CROSS
MAX
TAPE
CURRENT
MIN
TEMP
CURRENT_DATE
MIRROREXIT
TEMPORARY
CURRENT_TIME
NATIONAL
TEXTSIZE
CURRENT_TIMESTAMP
NOCHECK
THEN
CURRENT_USER
NONCLUSTERED
TO
CURSOR
NOT
TOP
DATABASE
NULL
TRAN
DBCC
NULLIF
TRANSACTION
DEALLOCATE
OF
TRIGGER
DECLARE
OFF
TRUNCATE
DEFAULT
OFFSETS
TSEQUAL
DELETE
ON
UNCOMMITTED
DENY
ONCE
UNION
DESC
ONLY
UNIQUE
DISK
OPEN
UPDATE
DISTINCT
OPENDATASOURCE
UPDATETEXT
DISTRIBUTED
OPENQUERY
USE
DOUBLE
OPENROWSET
USER
DROP
OPTION
VALUES
DUMMY
OR
VARYING
DUMP
ORDER
VIEW
ELSE
OUTER
WAITFOR
END
OVER
WHEN
ERRLVL
PERCENT
WHERE
ERROREXIT
PERM
WHILE
ESCAPE
PERMANENT
WITH
EXCEPT
PIPE
WORK
EXEC
PLAN
WRITETEXT
EXECUTE
PRECISION
EXISTS
PREPARE
我们经常不会在意一些关键字尤其是像user、 work等等,我们可以在使用数据库表名时都加上[ ]防止此类错误的发生。
- VB中调用SQL的一些小问题
- VB的一些小问题总结
- SQL的一些小问题
- SQL的一些小问题
- 在VB中使用ODBC API调用SQL Server2000存储过程的问题
- vb的一些问题
- VB的一些小技巧。
- sql语句的一些小问题集锦
- 关于hive sql的一些小问题
- vb.net编程中一些小细节
- 一个vb.net中遇到的简单的小问题
- [原创]谈谈vb中使用数据库的一点小问题
- [VB.NET]VB2005中文本框的两个小问题
- 一些编程中困惑的小问题
- 项目中遇到的一些小问题
- 开发中注意的一些小问题
- 项目中遇到的一些小问题
- 项目中遇到的一些小问题
- 网页设计中很重要的概念div+浮动..
- C++ 迭代器失效原因
- (AutoIt 实例)图片批量重命名小工具,支持jpg、jpeg、png、gif格式
- poj(3264+线段树)
- JTextField内容有效性验证几种方式
- VB中调用SQL的一些小问题
- Word 2010插入超链接——使用相对路径
- Android在Adapter里面调用Activity的方法/变量
- 手机首次充电方法及关于锂电池充电的正确知识ZZ
- 如何在Spring框架中解决多数据源的问题
- [Android实例] 仿Windows 文件浏览 文件选择器
- Android特效(持续更新)
- HDU 4396 || HDU 4360
- 正则表达式30分钟入门教程