以下是引用piaomiaoyuwu在2015-1-7 11:23:04的发言:
我是在vfp中用sql,如果用vfp,replace就能实现了,我是想试试vfp中输入sql语句,第一个select就是输入sql
在VFP中直接修改网络数据库的数据,可以用SPT方法。步骤如下(以Oracle为例,SQL Server可参考):
1、建立ODBC,具体过程略去;
2、在VFP中建立对网络数据库的连接。可用命令“
OrclHandle=SQLSTRINGCONNECT("DSN=
AAA;UID=
CCC;PWD=
123;DBQ=ORCL;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BNF=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=O;MLD=0;ODA=F;")”,红色部分对应ODBC中的Data Source Name;橙色部分对应ODBC中的User ID;绿色部分就是网络数据库的连接密码了。如果你觉得命令太复杂,可以新建一个数据库,用建立连接的向导来生成该命令的主体;
3、把命令内容赋予一个字符串变量。如:Command1="Update 表名 SET Xbm='1' WHERE Xbm='男'"。做这一步的目的是为了后面真正执行的命令看上去更简洁。另外,特别注意数据库系统对字符串的引用方法。因为Oracle是单引号引用,所以,整个命令的外面可以用双引号或方括号引起。若网络数据库只能用双引号,那么命令外围就用单引号或方括号;
4、执行命令。可用命令“SQLEXEC(
OrclHandle,Command1)”;
5、执行完命令后不要忘记关闭连接。可用命令“SQLDISCONNECT(
OrclHandle)”。
其中,蓝色的变量中存储的是连接号。连接成功,返回一个大于0的值,如果是第一次连接,则是1;如果是第二次连接相同目标(即第一次连接后没有断开连接),则是2,以此类推;若连接不成功,则为-1。
至于要不要提交,我在Oracle测试下来的结果是:只要成功执行了Update,则会自动提交该命令所产生的修改,不需要提交命令,不知道SQL Server中是如何处理的。
[
本帖最后由 taifu945 于 2015-1-7 19:49 编辑 ]