当前位置: 代码迷 >> VFP >> 学习vfp好久,但是这个spt/ca 不太解.请问
  详细解决方案

学习vfp好久,但是这个spt/ca 不太解.请问

热度:10149   发布时间:2013-02-26 00:00:00.0
学习vfp好久,但是这个spt/ca 不太解.请教!
http://blog.csdn.net/fyfcom/article/details/5688990 这是一个贴子. 我正在学习中.......

以下红色的是我的问题.

***********************以下是我改装后连接access中的文件  

&&&&&&&&&& SPT 方式
*!* lcConnectString = "Provider=Microsoft.Jet.OleDB.4.0;DataSource=DB1.mdb"  
&& 我在delphi asp 中连接就用此串在VFP中要使用下面的串
lcConnectString="Driver={Microsoft Access Driver (*.mdb)};dbq=db1.mdb;pwd=;uid=;"
nhandle=SQLSTRINGCONNECT(lcConnectString) &&pwd为数据库密码项 
IF nhandle <=0 
  MESSAGEBOX("数据库连接失败!!!",16, &#39;错误信息&#39;) 
  RETURN 
ELSE 
  Ac=SQLEXEC(nhandle,"Select * From address","address") 
  IF Ac <0 
  MESSAGEBOX("读取数据错误!",16, "错误信息")  
  ELSE
  SELECT address
  BROWSE  
APPEND BLANK
REPLACE name WITH "tt" &&这里添加并改变 一关闭就没有了 因为他们是 cursor !
INSERT INTO address (name,address) VALUES ("abc","abcd") &&这里添加并改变 一关闭就没有了 因为他们是 cursor !
BROWSE
*如何让上述两次改动保存在数据库呢?
*这个spt 全称是什么

&& 如何执行 sql 命令
&& 如何执行 存储过程
  ENDIF 
   
ENDIF 
SQLDISCONNECT(nhandle)



&&&&&&&&&&&&&&&&&&&&& CA 
lcConnString = "Driver={Microsoft Access Driver (*.mdb)};dbq=db1.mdb;pwd=;uid=;"
loCursor = createobject('CursorAdapter') 
with loCursor
  .Alias = 'address'
  .DataSourceType = 'ODBC' && 这里为何不写 ado
  .DataSource = sqlstringconnect(lcConnString)
  .SelectCmd = "select ID,name,address from address"
  .KeyFieldList = 'ID'
  .Tables = 'address'
  .UpdatableFieldList = 'name,address'
  *.UpdateNameList = 'CONTACTNAME CUSTOMERS.CONTACTNAME'
  .UpdateNameList = 'address address.address,name address.name'  
   
  if .CursorFill()
  &&&&以下没有执行!
  BROWSE
APPEND BLANK
REPLACE name WITH "tt"
INSERT INTO address (name,address) VALUES ("abc","abcd")

&&如果执行成功,我想添加记录怎么办?
&& 如何生成 记录集 && 比如不是表中全部数据的记录集
&& 如何执行 sql 命令
&& 如何执行 存储过程
   
  ELSE
  && 这里执行啦
  MESSAGEBOX("TT")
  ENDIF
  .CursorFill() &&这里为什么又加一句
ENDWITH

RELEASE loCursor



http://blog.csdn.net/fyfcom/article/details/5688990 该贴子中对 CA 这样说:

这里是上面的最后一个观点的例子。假设你有一个使用 CursorAdapter 通过 ODBC 来访问 SQL Server 数据的应用程序,由于某些原因你想要改成使用 ADO 了。对于这种情况,你只需要改动 CursorAdapter 的 DataSourceType 属性、并改变对后台数据库的连接,就全部完成了。你的应用程序中的其它部分不需要知道也不需要关心这些事情;它们看到的只是同一个 Cursor 而不管使用了哪一种机制。

属性

我们先从查看 CursorAdapter 的属性、事件和方法开始来学习它。这里不会讨论所有的属性,只谈一下最重要的那些。

DataSourceType
**************

这个属性是最重要的:它决定了这个类的表现,以及要在其它一些属性中要怎么设置。可用的选项有“Native”——意思是使用 VFP 表——或者是 "ODBC"、"ADO" 或 "XML" ,表示你要选用的访问远程数据源的方式。

ODBC 如何连接
ADO 如何连接
XML 如何连接

DataSource
***********

这是访问数据的手段。当 DataSourceType 被设置成“Native”或者“XML”的时候,VFP会忽略这个属性的设置。对于ODBC,请把这个属性设置为一个有效的 ODBC 连接句柄(这意味着你要自己管理连接了)。在ADO的情况下,DataSource 必须是一个 ADO RecordSet,而且它的 ActiveConnection 对象必须被设置为一个打开的 ADO Connection 对象(你又要自己管理这些了)。
  相关解决方案