请教:asp操作db2数据库问题

swordinhand 2003-04-18 10:39:53
用的是db2 7.2版,数据库服务器是一台aix的机器,用的是ibm的oledb provider for db2驱动,在使用中遇到一些一些问题:
1。无法使用Recordset对象的addnew、update等方法,提示provider不支持这个操作。
2。使用Connection对象的Execute方法执行sql语句时,如果语句过长,就会提示Execute是未知的名称。
不知道哪位大侠有这方面的经验,请指点一下。
...全文
78 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cboy2003 2003-04-18
  • 打赏
  • 举报
回复
应该能解决你的问题的
当创建新表时,新表不包含任何数据。要将新的行输入表中,使用 INSERT 语句。此语句有两种一般格式:


一种格式,使用 VALUES 子句来指定一行或多行的列值。下面三个示例使用此一般格式将数据插入表中。

另一种格式,指定全查询而非指定 VALUES 来标识来自包含在其他表和/或视图中的行的列。
全查询是 INSERT 或 CREATE VIEW 语句中所使用的选择语句、或者是跟在谓词后面的选择语句。括在括号中的全查询一般称为子查询。

根据创建表时已选择的缺省选项,对于每个插入的行,为每一列提供一个值或者接受一个缺省值。各种数据类型的缺省值在 SQL Reference 中讨论。

下列语句使用 VALUES 子句将一行数据插入 PERS 表中:


INSERT INTO PERS
VALUES (12, 'Harris', 20, 'Sales', 5, 18000, 1000, '1950-1-1')


下列语句使用 VALUES 子句将三行插入其中只有 ID、名称以及工作是已知的 PERS 表中。如果列定义为 NOT NULL 且没有缺省值,则必须为该列指定一个值。 CREATE TABLE 语句中的列定义上的 NOT NULL 子句可以用单词 WITH DEFAULT 扩充。如果某一列定义为 NOT NULL WITH DEFAULT 或常数缺省值(如 WITH DEFAULT 10),并且您未在列列表中指定该列,则缺省值插入至已插入行的该列中。例如,在 CREATE TABLE 语句中,仅为 DEPT 列指定了缺省值并将该值定义为 10。因此,DEPT 设置为 10 而所有其他列都为空。


INSERT INTO PERS (NAME, JOB, ID)
VALUES ('Swagerman', 'Prgmr', 500),
('Limoges', 'Prgmr', 510),
('Li', 'Prgmr', 520)

下列语句返回插入的结果:

SELECT *
FROM PERS

ID NAME DEPT JOB YEARS SALARY COMM BIRTH_DATE
------ --------- ------ ----- ------ --------- --------- ----------
12 Harris 20 Sales 5 18000.00 1000.00 01/01/1950
500 Swagerman 10 Prgmr - - - -
510 Limoges 10 Prgmr - - - -
520 Li 10 Prgmr - - - -

注意:在此情况下,并未给每个列指定值。空值显示为 -。为此,列名列表的次序和数据类型都必须与 VALUES 子句中提供的值对应。如果省略列名列表(如第一个示例中那样),则 VALUES 之后的数据值列表的次序必须与它们所插入至的表中的列次序相同,值的数目必须等于表中列的数目。

每个值必须与它所插入至的列的数据类型相容。如果某列定义为可空,且未指定该列的值,则将空值赋给插入行中的该列。

下列示例将空值插入 YEARS、COMM 和 BIRTH_DATE 中,因为未给行中的那些列指定值。

INSERT INTO PERS (ID, NAME, JOB, DEPT, SALARY)
VALUES (410, 'Perna', 'Sales', 20, 20000)

INSERT 语句的第二种格式对于用来自另一表中行的值填充表非常方便。如所述的那样,指定全查询而非指定 VALUES 以标识来自包含在其他表和/或视图中的行中的列。

下列示例从员工 STAFF 表中选择部门 38 的成员的数据,并将它插入 PERS 表中:


INSERT INTO PERS (ID, NAME, DEPT, JOB, YEARS, SALARY)
SELECT ID, NAME, DEPT, JOB, YEARS, SALARY
FROM STAFF
WHERE DEPT = 38

在此插入之后,下列 SELECT 语句与 INSERT 语句中全查询产生的结果相同。

SELECT ID, NAME, DEPT, JOB, YEARS, SALARY
FROM PERS
WHERE DEPT = 38


结果为:


ID NAME DEPT JOB YEARS SALARY
------ --------- ------ ----- ------ ---------
30 Marenghi 38 Mgr 5 17506.75
40 O'Brien 38 Sales 6 18006.00
60 Quigley 38 Sales - 16808.30
120 Naughton 38 Clerk - 12954.75
180 Abrahams 38 Clerk 3 12009.75

cboy2003 2003-04-18
  • 打赏
  • 举报
回复
http://www.oradb.net/download/db2sql.zip
DB2 SQL入门
你下下来仔细看看,里面有相信的说明
cboy2003 2003-04-18
  • 打赏
  • 举报
回复
用insert into
db2不支持addnew
swordinhand 2003-04-18
  • 打赏
  • 举报
回复
没有人知道吗?

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧