//����ͬ�� private void syncDiffThread() { string sErr; bHasSrv = getWSStatus(SettingForm.sWebSrvUrl, out sErr); if (!bHasSrv) { ShowStat(listBox1, "��ǰ������������!"); ShowStat(listBox1, "finish-diff"); return; } AssWebSrv.Service ws = new AssWebSrv.Service(); ws.Url = SettingForm.sWebSrvUrl; //��ȡ���ش�ͬ������ ShowStat(listBox1, "ͬ���������� ..."); string sSql = "select * from sync_log where stat= '0' order by id asc"; SQLiteDataReader reader = SQLiteHelper.ExecuteReader(sSql); if (!reader.HasRows) { ShowStat(listBox1, "��ͬ�����ݣ�"); } else { List<string> listSql = new List<string>(); string sIdSql = ""; while (reader.Read()) { sIdSql += "'" + reader["id"].ToString() + "',"; string sTyp = reader["typ"].ToString(); string sSqlContent = reader["sql_content"].ToString(); string sAssId = reader["ass_id"].ToString(); ShowStat(listBox1, "����:" + sAssId + " " + sTyp); listSql.Add(sSqlContent); sSql = string.Format("insert into sync_log(typ,stat,sql_content,client_id,ass_id,cre_tm)values('{0}','{1}','{2}','{3}','{4}','{5}')", sTyp, "0", sSqlContent.Replace("'", "''"), SettingForm.sClientId, sAssId, LoginForm.getDateTime()); listSql.Add(sSql); listSql.Add(sSql); } reader.Close(); ShowStat(listBox1, "�ύ..."); string sLastErr; bool bOK = ws.ExecuteNoQueryTran(listSql.ToArray(), out sLastErr); if (bOK) { sSql = "update sync_log set stat = '1' where stat = '0' and id in(" + sIdSql.Trim(',') + ")"; int nReslt = SQLiteHelper.ExecuteNonQuery(sSql, null); if (nReslt > 0) { ShowStat(listBox1, "�ύOK!"); } else { ShowStat(listBox1, "����״̬����ʧ��!" + SQLiteHelper.sLastErr); } } else { ShowStat(listBox1, "�ύʧ��!" + sLastErr); } } //��ȡ��������ͬ������ ShowStat(listBox1, ""); ShowStat(listBox1, "ͬ�������� ..."); sSql = "select * from sync_log where client_id != '" + SettingForm.sClientId + "' and id > " + SettingForm.sSyncMax + " order by id ASC"; DataTable dt = ws.GetDataTableBySql(sSql); if (dt.Rows.Count == 0) { ShowStat(listBox1, "��ͬ�����ݣ�"); } else { List<string> listSql = new List<string>(); string sMax = SettingForm.sSyncMax; foreach (DataRow dataRow in dt.Rows) { sMax = dataRow["id"].ToString(); string sTyp = dataRow["typ"].ToString(); string sSqlContent = dataRow["sql_content"].ToString(); string sAssId = dataRow["ass_id"].ToString(); ShowStat(listBox1, "����:" + sAssId + " " + sTyp); listSql.Add(sSqlContent); // Console.Out.WriteLine(sSqlContent); } listSql.Add(string.Format("update sys_parms set parm_val = '{0}' where parm_id = '{1}'", sMax, "sync_max")); ShowStat(listBox1, "�ύ..."); bool bOK = SQLiteHelper.ExecuteNoQueryTran(listSql); if (bOK) { SettingForm.sSyncMax = sMax; ShowStat(listBox1, "�ύOK!"); } else { ShowStat(listBox1, "�ύʧ��!" + SQLiteHelper.sLastErr); // Console.Out.WriteLine(SQLiteHelper.sLastErr); MessageBox.Show(SQLiteHelper.sLastErr, "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1); } } ShowStat(listBox1, "ͬ����ɣ�"); ShowStat(listBox1, "finish-diff"); }
private void syncAllThread() { string sErr; bHasSrv = getWSStatus(SettingForm.sWebSrvUrl, out sErr); if (!bHasSrv) { ShowStat(listBox1, "��ǰ������������!"); ShowStat(listBox1, "finish-all"); return; } AssWebSrv.Service ws = new AssWebSrv.Service(); ws.Url = SettingForm.sWebSrvUrl; //ͬ���ʲ��嵥 syncFun(ws, "ass_list", "�ʲ��嵥"); //ͬ����Ա���� syncFun(ws, "emp", "��Ա����"); //ͬ���˻���Ϣ syncFun(ws, "user", "�˻���Ϣ"); //ͬ����ַ��Ϣ syncFun(ws, "addr", "��ַ��Ϣ"); //ͬ���̵��嵥 syncFun(ws, "inv_list", "�̵��嵥"); //ͬ���ʲ���ʷ syncFun(ws, "ass_log", "�ʲ���ʷ"); //ͬ��ϵͳ���� syncFun(ws, "sys_parms", "ϵͳ����"); //�������� ShowStat(listBox1, "�������¼��ָ� ..."); //��ȡͬ���� string sSql = "select max(id) maxid from sync_log"; DataTable dt = ws.GetDataTableBySql(sSql); string sSyncMax = ""; if (dt != null) { sSyncMax = dt.Rows[0]["maxid"].ToString(); if (sSyncMax.Length == 0) { sSyncMax = "0"; } } ShowStat(listBox1, "ͬ���Ÿ��£�" + sSyncMax); ShowStat(listBox1, "����ͬ������ɾ��"); ShowStat(listBox1, "�ͻ���ID�ָ���" + SettingForm.sWebSrvIp); ShowStat(listBox1, "Web Service�ָ���" + SettingForm.sWebSrvIp); ShowStat(listBox1, "UDP IP�ָ���" + SettingForm.sUdpIp); ShowStat(listBox1, "UDP �˿ڻָ���" + SettingForm.sUdpPort); List<string> listSql = new List<string>(); listSql.Add(string.Format("update sys_parms set parm_val = '{0}' where parm_id = '{1}'", sSyncMax, "sync_max")); listSql.Add(string.Format("update sys_parms set parm_val = '{0}' where parm_id = '{1}'", SettingForm.sClientId, "client_id")); listSql.Add(string.Format("update sys_parms set parm_val = '{0}' where parm_id = '{1}'", SettingForm.sWebSrvIp, "websrv_ip")); listSql.Add(string.Format("update sys_parms set parm_val = '{0}' where parm_id = '{1}'", SettingForm.sUdpIp, "udp_ip")); listSql.Add(string.Format("update sys_parms set parm_val = '{0}' where parm_id = '{1}'", SettingForm.sUdpPort, "udp_port")); listSql.Add("delete from sync_log"); bool bOK = SQLiteHelper.ExecuteNoQueryTran(listSql); if (bOK) { SettingForm.sSyncMax = sSyncMax; SettingForm.LoadSetting(); } ShowStat(listBox1, bOK ? "�����ѻָ���" : "�����ָ�ʧ�ܣ������ԣ�"); ShowStat(listBox1, "--------------"); if (sSyncMax.Length == 0) { ShowStat(listBox1, "��ȡͬ����ʧ�ܣ������ԣ�"); } else { ShowStat(listBox1, "ȫ��ͬ����ɣ�"); } ShowStat(listBox1, ""); ShowStat(listBox1, "finish-all"); }