VFP与SQL SERVER合作遇到的问题(我是初学者)

shenyegh 2011-05-31 09:17:26
我最近刚开始接触VFP+SQL,并找了一台服务器安装了sql server 2005版,今天在这台服务器上手动建立了如下信息:
1、服务器名为:DNC-103;
2、数据库名为:采购管理系统数据库;
3、数据库中的表名为:供应商信息(字段为:供应商编号,供应商名称,电话,传真,联系人,经营范围等);
4、用户名:sa,密码:sa;
遇到的问题:
1、如何在客户端的VFP程序中向该表中增删一台记录,又如何通过客户端VFP程序修改记录或结构?
2、我在SQL server服务器上手动修改该表数据类型ntext--->char时出错:“....,因为它正用于复制”;
3、我使用方法:
vsql='execute insert into 供应商信息 供应商名称 values("dddddd")'
sqlexec(vconn,vsql) &&vconn为连接句柄
返回值小于0,即失败!
4、DMO好用还是SPT,许多人建议使用SPT,但我今天找到的一份资料是使用DMO的,我觉得挺好,不知道DMO能否代替SPT,使用DMO是否必须在客户端安装SQL SERVER呢?

欢迎各位老师指点,先谢谢!
...全文
190 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
开发者孙小聪 2011-06-21
  • 打赏
  • 举报
回复

//函数用于数据库中添加记录
public static void DatasetAdd()
{
string strConn = @"Provider=vfpoledb;Data Source=E:\;Collating Sequence=machine;TABLEVALIDATE=0";
using (OleDbConnection myConnection = new OleDbConnection(strConn))
{
myConnection.Open();
OleDbDataAdapter adpt = new OleDbDataAdapter("select * from user_info.DBF", myConnection);
OleDbCommandBuilder odcb = new OleDbCommandBuilder(adpt);
DataSet mySet = new DataSet();
adpt.Fill(mySet,"user_info");
Console.WriteLine(mySet.Tables[0].Rows[0][1].ToString());
DataRow myDataRow;
DataTable myDataTable;
myDataTable=mySet.Tables["user_info"];
myDataRow = myDataTable.NewRow();
myDataRow["number"]=2;
myDataRow["user_name"] = "abc";
myDataRow["user_password"] = "abc";
myDataTable.Rows.Add(myDataRow);
adpt.Update(mySet.GetChanges(),"user_info");
mySet.Tables["user_info"].AcceptChanges();


myConnection.Close();


}

}

ACMAIN_CHM 2011-06-01
  • 打赏
  • 举报
回复
如果是初学者,与其花时间学习VFP操作SQL SERVER,还不如花同样的时间去学 C#操作SQL SERVER。 或者更少的时间去直接使用ACCESS的SQL SERVER 项目。
xilaianzxsc 2011-06-01
  • 打赏
  • 举报
回复
我也是从初学者过来的.

这儿的老师,水平很高.

学起来很轻松的.
十豆三 2011-06-01
  • 打赏
  • 举报
回复
十豆三 2011-06-01
  • 打赏
  • 举报
回复
vsql='execute insert into 供应商信息 供应商名称 values("dddddd")'
改为
vsql='insert into 供应商信息 供应商名称 values("dddddd")'

DMO一般用于备份等管理操作,还是用 SPT。

另外以后在 VFP 端调试不成功时,可以把你的 SPT 语句(execute insert into 供应商信息 供应商名称 values("dddddd"))放在 SQL Server 的查询分析器中运行看一下出错信息。
wwwwb 2011-06-01
  • 打赏
  • 举报
回复
1、如何在客户端的VFP程序中向该表中增删一台记录,又如何通过客户端VFP程序修改记录或结构?

发T-SQL语句,修改记录或结构

2、我在SQL server服务器上手动修改该表数据类型ntext--->char时出错:“....,因为它正用于复制”;
详细说明,此字段 有数据

3、我使用方法:
vsql='execute insert into 供应商信息 供应商名称 values("dddddd")'
sqlexec(vconn,vsql) &&vconn为连接句柄
假设供应商信息为表,供应商名称为字段
vsql='insert into 供应商信息(供应商名称) values("dddddd")'
sqlexec(vconn,vsql)

返回值小于0,即失败!
4、DMO好用还是SPT,许多人建议使用SPT,但我今天找到的一份资料是使用DMO的,我觉得挺好,不知道DMO能否代替SPT,使用DMO是否必须在客户端安装SQL SERVER呢?
都可以,还可以用ADO操作SQLSERVER
along09 2011-05-31
  • 打赏
  • 举报
回复
SPT 很好用,你只要换下面语句中的vsql部分内容就可以了;
你的语句修改为:
vsql=”insert into 供应商信息(供应商名称) values(‘dddddd’)“
sqlexec(vconn,vsql) &&vconn为连接句柄

修改结构使用ALTER TABLE相关语法,你到Sql Server的帮助中找下,就可以了。
ACMAIN_CHM 2011-05-31
  • 打赏
  • 举报
回复
vsql='execute insert into 供应商信息 (供应商名称) values("dddddd")'

楼主需要了解一下SQL语句的基本语法。

2,749

社区成员

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

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