如何使用odbc删除foxpro中的数据

ls_jerry 2003-05-01 11:48:21
在foxpro中用标准的sql删除数据只是添加了删除标记,要pack后才能永久删除
如何用odbc连接完成永久删除的功能呢
请高手指教,谢谢
...全文
64 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ls_jerry 2003-05-03
  • 打赏
  • 举报
回复
那在asp或者php中就只能用vb或者vc做一个com才行了吗
就没有别的办法了?
marki 2003-05-02
  • 打赏
  • 举报
回复
* 演示 ADO AddNew, Update, Find,
* Filter 和 Delete 功能.

#DEFINE adOpenDynamic 2
#DEFINE adLockOptimistic 3
oRecordSet = CREATEOBJECT("ADODB.Recordset")

* SQL Server 驱动程序默认的服务器端游标,
* 这需要使用 adOpenDynamic.
oRecordSet.OPEN("select * from authors", ;
"DRIVER={SQL Server};"+;
"SERVER=YourServerName;"+;
"DATABASE=pubs;"+;
"UID=YourUserName;"+;
"PWD=YourPassword",;
adOpenDynamic, adLockOptimistic)

=AddRec()
* 现在记录添加了 - 找到它并删除它.
oRecordSet.FIND("au_id = '987-65-4321'")
IF NOT oRecordSet.EOF
oRecordSet.DELETE
=MESSAGEBOX("Record deleted")
ENDIF

* 移去以下行的注释来显示记录集中的 AU_ID.
* =ShowRS()

* 再次添加它, 这一次, 用复合筛选来查找并删除它.
=AddRec()
oRecordSet.FILTER = ("au_id = '987-65-4321' and au_lname = 'Smith'")
IF NOT oRecordSet.EOF
oRecordSet.DELETE
=MESSAGEBOX("Record deleted")
ENDIF

* 移去以下行的注释来显示记录集中的 AU_ID.
* =ShowRS()

* 移去筛选.
oRecordSet.FILTER = ""

* 函数 ShowRS:
* 显示记录集中的所有 au_id.
FUNCTION ShowRs

CLEAR
oRecordSet.MoveFirst
? oRecordSet.RecordCount
* 显示 au_id 字段值
DO WHILE ! oRecordSet.EOF
?oRecordSet.FIELDS("au_id").VALUE
oRecordSet.MoveNext
ENDDO

* 函数 AddRec:
* 添加一个新记录到 authors 表.
FUNCTION AddRec

oRecordSet.AddNew
oRecordSet.FIELDS("au_id")= '987-65-4321'
oRecordSet.FIELDS("au_lname") = "Smith"
oRecordSet.FIELDS("au_fname") = "John"
oRecordSet.FIELDS("phone") = 9999999999
oRecordSet.FIELDS("address") = "123 4th Street"
oRecordSet.FIELDS("city") = "New York"
oRecordSet.FIELDS("state") = "NY"
oRecordSet.FIELDS("zip") = "99999"
oRecordSet.FIELDS("contract") = .T.
oRecordSet.UPDATE
=MESSAGEBOX("Record added")
zhongyj 2003-05-02
  • 打赏
  • 举报
回复
在foxpro內不能永久删除odbc foxpro數據源中的數據
cxmcxm 2003-05-02
  • 打赏
  • 举报
回复
vfp自己不行,其它肯定不行,要完全删除,vfp要独占打开,再pack, odbc,ado肯定也需独占打开.因为最后操作都是vfp的引擎
zhongyj 2003-05-02
  • 打赏
  • 举报
回复
除了在VFP中執行PACK命令外,另一個方法就是使用fpole.dll
vb的示例

Declare Sub FoxDoCmd Lib "C:\Program Files\Microsoft Visual Studio\Vfp98\Fpole.dll" (cCommand As String, cOptions As String)

FoxDoCmd "USE (HOME(2) + 'Data\Customer')", "i"
FoxDoCmd "pack", "i"
FoxDoCmd "USE"
ls_jerry 2003-05-02
  • 打赏
  • 举报
回复
对不起,可能是我问得不清楚
我的意思把foxpro库作为odbc的数据源
用其他的程序通过odbc操作foxpro中的数据
比如asp,php,或者vc

2,722

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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