㈠ 怎麼通過力控軟體刪除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之間的一個數據轉儲任務就設置完成。