| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1064 人关注过本帖
标题:插入记录问题
只看楼主 加入收藏
itzhiren
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2004-10-12
收藏
 问题点数:0 回复次数:2 
插入记录问题
sqlexec(conn,'insert into table(c_f1,c_f2) values("aa","f2")')
这样哪里不对?
为什么执行结果一直是-1?
搜索更多相关主题的帖子: 记录 
2005-07-23 10:47
shenkj001
Rank: 3Rank: 3
来 自:河南安阳
等 级:论坛游侠
威 望:9
帖 子:340
专家分:147
注 册:2005-5-23
收藏
得分:0 

请参阅: 将一条 SQL 语句送入数据源中处理。 SQLEXEC(nConnectionHandle, [cSQLCommand, [cCursorName]]) 返回值 数值型 参数 nConnectionHandle 指定由 SQLCONNECT() 返回的、指向数据源的连接句柄。 cSQLCommand 指定送入数据源的 SQL 语句。 SQL 语句中可以包含一个参数化的 WHERE 子句,该子句创建一个参数化的视图。所有 WHERE 子句中的参数必须在发出 SQLEXEC() 之前定义。例如,如果参数是内存变量,那么该内存变量必须在 SQLEXEC() 发出之前创建并初始化。 有关创建参数化视图的详细内容,请参阅创建视图。 cCursorName 指定 Visual FoxPro 临时表的名称,结果集合将送入该临时表中。如果不包含临时表名,Visual FoxPro 使用默认名 SQLRESULT。

对于多个结果集合,通过在第一个临时表的名称后追加一个递增的数值构成新临时表名。 备注 如果存在多个结果集合,SQLEXEC() 返回结果集合的数目。如果 SQLEXEC() 仍在执行,SQLEXEC() 返回 0;当 SQLEXEC() 结束时,返回 1;如果发生连接级错误,SQLEXEC() 返回 -1。 如果你要传递的 SQL 语句太长, 检查它是否超过了 Visual FoxPro 串长的最大限度 255 字符。太长的串会产生 "命令中含有不能识别的短语或关键字。" 错误。但是, 如果你把它们分割到多个相连的串中, 你可以传递长的 SQL 语句。例如: lnRetVal = SQLEXEC(lnHandle, "SELECT <long list of fields> " + ; "FROM <several tables> " + ; "WHERE <complex filter expression>") 如果 SQLEXEC() 用于执行一个用 SQLPREPARE() 准备的 SQL 语句, 只需要连接句柄参数。cSQLCommand 和 CursorName 参数可以省略。 如果 SQL 语句产生一个结果集合,那么 SQLEXEC() 将该结果集合存入指定的 Visual FoxPro 临时表中;如果 SQL 语句产生两个或多个结果集合,同时 SQLSETPROP() 设置为 1 (批处理方式),可以通过 SQLSETPROP() 设置 BatchMode 选项为 0,并且在每次调用 SQLMORERESULTS() 时更改临时表的名称来命名每个结果集合。 SQLEXEC() 是既能同步执行又能异步执行的四个函数之一。SQLSETPROP() 异步设置决定它们是同步执行还是异步执行。在异步方式下,必须重复调用 SQLEXEC() 直到返回一个非零值 ( 0 表示仍在执行)。 示例 下面的示例假定已经成功地发出 sqlconnect() 并且其返回值存入名为 gnconnhandle 的内存变量。 sqlexec() 用来执行一个查询,该查询将 authors 表中的全部内容返回到名为 mycursor 的临时表中。 = SQLSETPROP(gnConnHandle, 'asynchronous', .F.) = SQLEXEC(gnConnHandle, 'SELECT * FROM authors', 'MyCursor')


shenkj001@
2005-07-23 11:17
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
收藏
得分:0 
以下是引用itzhiren在2005-7-23 10:47:06的发言: sqlexec(conn,'insert into table(c_f1,c_f2) values("aa","f2")') 这样哪里不对? 为什么执行结果一直是-1?
你也是把里面的东东说明一下啊? table 是表名吧,c_f1是字段? AA和F2是从哪来的? 你不说我怎么知道错在哪 如果是表单中TEXT里的内容,那么你这样试试 AA=ALLT(THISFORM.TEXT1.,LVAUE) F2=ALLT(THISFORM.TEXT2.,LVAUE) 然后把下面的语句改成 sqlexec(conn,'insert into table(c_f1,c_f2) values(?aa,?f2)') 下次记得加个问号,把直接引用,不然的话会出错的

[此贴子已经被作者于2005-7-24 17:29:23编辑过]


有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2005-07-24 17:28
快速回复:插入记录问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043985 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved