㈠ 怎么通过力控软件删除sql数据库中的单个内容 函数脚本怎么编写
1、必须先安装Microsoft Office Access 2003,和SQL Server数据库。
2、用Access 2003打开动数据库,打开后按工具栏——数据库实用工具——转换数据库——转换为2002-2003格式,把数据库转换成2003格式。
3、转换完成后再用Access 2003打开,打开后按工具栏——数据库实用工具——升迁向导——新建数据库——填写SQL数据库登陆名称、密码和要新建的数据库(准备转成新的数据库),按下一步,按“ 》”键,再按下一步,选取所有选项,再按下一步,选择“不对应用程序作任何改动”,再按完成。
4、打开SQL企业管理器——数据库---选中相应的数据库---右键所有任务-----生成SQL脚本——常规——全部显示——编写全部对象脚本——确定(记住存放的位置)。
5、用记事本打开刚才生成的SQL脚本,在编辑栏——替换——查找内容为“smalldatetime”替换为“datetime”——替换全部;完成后再在编辑栏——替换——查找内容为“nvarchar”替换为“varcha”——替换全部,完成后保存退出。
6、打开SQL企业管理器——数据库——点击新建的数据库,然后在工具栏——SQL查询分析器——文件——打开——“刚才生成的SQL脚本”——查询——执行,然后关闭窗口。
7、再回到SQL企业管理器——数据库——点击新建的数据库,然后打开工具栏——数据库转换服务——导入数据——下一步——数据源“Microsoft Access”文件名“为旧的acc数据库”——下一步——再下一步——从源数据复制表和视图——下一步——全选——下一步——立即运行——下一步——完成。
8、最后补充:
(1)由于SQL2000里面没有"自动编号",所以你的以"自动编号"设置的字段都会变成非空的字段,这就必须手工修改这些字段,并把他的"标示"选择"是",种子为"1",增量为"1",
(2)另外,ACCESS2000转换成SQL2000后,原来属性为"是/否"的字段将被转换成非空的"bit",这时候你必须修改成自己想要的属性了;
(3)另外,大家要注意对时间函数的把握.ACCESS与SQL是有很多不同的.
根据以上3点,再回到SQL企业管理器——数据库——点击这个数据库下新建的数据库,将所有表的字段属性根据以上3点进行修改
补充说明:
自动增加字段需要重写。在access中经常使用的自动编号字段,导入到mssql后,他并不是自增型的int,需要手工设置,把导入后的自动编号字段的标识的“否”改为“是”,“种子”和“递增量”都为“1”,才能成为自动编号
所有的默认值都丢失了。主要是数字类型和日期类型
所有now(),time(),date()要改成getdate()
所有datediff(‘d‘, time1, time2)要改成datediff(day, time1, time2)
所有datediff(‘ww‘, time1, time2)要改成datediff(week, time1, time2)
所有datediff(‘d‘, time1, time2)要改成datediff(day, time1, time2)
在mssql server中,有许多保留字,在access中是没有的,当你把数据导入到mssql的时候,问题就出来了。mssql在导入的时候,会自动给这些字段(包括数据库中的表名)加上“[字段名]”,因此,你必须修改你的脚本,把相应的字段名字(或者表名字)加上中括号,或改变字段名字为不是mssql的保留字
在用access关于时间的使用,大家喜欢使用“select * from aaaa while time="
并且须提供远程访问和1433口打开.
参考2005的.Sql Server 2005的1433端口打开和进行远程连接
如何打开sql server 2005 的1433端口
配置工具->Sql Server Configuration Manager->MSSQLSERVER的协议
看看TCP/IP协议是否启动,如果启动,右键菜单点"属性" ,在分页菜单中选"IP地址",把"IP1"和"IP2"中"TCP端口"为1433,
"已启用"改为"是"
配置工具->Sql Server Configuration Manager->SQL Native Client 配置->客户端协议->TCP/IP
选择TCP/IP右键菜单中"属性",确认"默认端口"是1433,"已启用"为"是"
SQL Server 2005 远程连接
㈢ 谁能跟我说一下力控组态软件的脚本编辑用什么语言编写
这个脚本是类VC的,其实没什么要求。。。。学过VB的就会了 很简单的,你可以打开demo工程里,看看那里面怎么写的。另外脚本可以写到应用程序中,也可以写到窗口脚本,还可以写到按钮左键动作里等等,区别是执行的条件不一样而已。
举例:
IF IsWeb() == 1 THEN
ELSE
IF COD_start_meas.PV == 0 THEN
sys_time = StrTime($Curtime,1);
COD_run_log = "待机[Ready]";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
COD_run_log = "";
ENDIF
IF COD_start_meas.PV == 1 THEN
sys_time = StrTime($Curtime,1);
COD_run_log = "就绪[Ground]";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
COD_run_log = "";
ENDIF
IF COD_start_meas.PV == 2 THEN
sys_time = StrTime($Curtime,1);
COD_run_log = "清洗[Clean]";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
COD_run_log = "";
ENDIF
IF COD_start_meas.PV == 4 THEN
sys_time = StrTime($Curtime,1);
COD_run_log = "校正[Calib.]";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
COD_run_log = "";
IF COD_meas_flag.PV == 1; THEN
COD_meas_flag.PV = 0;
sys_meas_flag.PV = 0;
COD_cal_flag.PV =1;
sys_run_log = "COD启动测量后进入校正状态,触发开启...";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
sys_run_log = "";
#sys_active_T.Start(); //开启触发定时器
ENDIF
ENDIF
IF COD_start_meas.PV == 8 THEN
sys_time = StrTime($Curtime,1);
COD_run_log = "启动[Start]";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
COD_run_log = "";
ENDIF
IF COD_start_meas.PV == 32 THEN
sys_time = StrTime($Curtime,1);
COD_run_log = "测量[meas.]";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
COD_run_log = "";
sys_meas_time.DESC = StrTime($Curtime,1); //系统启动测量时间
sys_run_log = "测量时间缓存...";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
sys_run_log = "";
ENDIF
IF COD_start_meas.PV == 64 && COD_meas_flag.PV == 1 THEN
sys_time = StrTime($Curtime,1);
COD_run_log = "排空[Empty]";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
COD_run_log = "";
sys_run_log = "COD测量结束, " + IntToStr(PLC_start_sampl.PV,10) + "号取样口数据打包存入报表...";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
sys_run_log = "";
IF PLC_start_sampl.PV ==1 THEN
COD1_db.PV = COD_VALUE.PV;
sys_meas_time1.DESC = sys_meas_time.DESC;
IF ( point2_flag.PV || point3_flag.PV || point4_flag.PV ) == 0 THEN
sys_run_log = "系统循环测量周期定时器开启...";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
sys_run_log = "";
#sys_interval_T.Start(); //系统循环测量周期定时器开启
ELSE
sys_run_log = "CODmax测量间隔定时器开启...";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
sys_run_log = "";
#point_interval_T.Start(); //CODmax测量间隔定时器开启
ENDIF
//ELSE
//COD1_db.PV = 0;
ENDIF
IF PLC_start_sampl.PV ==2 THEN
COD2_db.PV = COD_VALUE.PV;
sys_meas_time2.DESC = sys_meas_time.DESC;
IF ( point3_flag.PV || point4_flag.PV ) == 0 THEN
sys_run_log = "系统循环测量周期定时器开启...";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
sys_run_log = "";
#sys_interval_T.Start(); //系统循环测量周期定时器开启
ELSE
sys_run_log = "CODmax测量间隔定时器开启...";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
sys_run_log = "";
#point_interval_T.Start(); //CODmax测量间隔定时器开启
ENDIF
//ELSE
//COD2_db.PV = 0;
ENDIF
IF PLC_start_sampl.PV ==3 THEN
COD3_db.PV = COD_VALUE.PV;
sys_meas_time3.DESC = sys_meas_time.DESC;
IF point4_flag.PV == 0 THEN
sys_run_log = "系统循环测量周期定时器开启...";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
sys_run_log = "";
#sys_interval_T.Start(); //系统循环测量周期定时器开启
ELSE
sys_run_log = "CODmax测量间隔定时器开启...";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
sys_run_log = "";
#point_interval_T.Start(); //CODmax测量间隔定时器开启
ENDIF
//ELSE
//COD3_db.PV = 0;
ENDIF
IF PLC_start_sampl.PV ==4 THEN
COD4_db.PV = COD_VALUE.PV;
sys_meas_time4.DESC = sys_meas_time.DESC;
sys_run_log = "系统循环测量周期定时器开启...";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
sys_run_log = "";
#sys_interval_T.Start(); //系统循环测量周期定时器开启
//ELSE
//COD4_db.PV = 0;
ENDIF
IF sys_meas_flag.PV == 1 THEN
sys_meas_log.DESC = IntToStr(PLC_start_sampl.PV,10) + "号取样口自动测量";
ENDIF
IF sys_meas_flag.PV == 2 THEN
sys_meas_log.DESC = IntToStr(PLC_start_sampl.PV,10) + "号取样口手动测量";
ENDIF
SQLInsert(ConnectID,"dlhb_meas_group","meas_group");
sys_meas_log.DESC = "";
COD_meas_flag.PV = 0;
sys_meas_flag.PV = 0;
ENDIF
ENDIF
㈣ 力控sqlinsert失败
力控sqlinsert失败在要插入语句前set names utf8
失败的原因:1.表中存在外键,关联到另一个表,插入不存在于另一表主键的值的时候会报错
2.value后面括号的字段数目、类型和value前面的字段数目或者类型不匹配
1、添加ADO 后台组件,建立数据表绑定
2、打开数据库
3、按照建立的绑定向库中插入数据
㈤ 力控组态软件同步实时数据到关系型数据库(sqlserver 2008)
字段Time和TagName是建表是的自动字段,不用设置,可以根据不同需要自己增加数据转储的字段,可以自己修改字段名。
按钮AuTo是自动添加所有变量的字段名,如果是本地数据源就字段名等于变量名,如果是远程数据源字段名自动等于”远程数据源名\\变量名”。
此时点击完成,和SQLserver2000之间的一个数据转储任务就设置完成。