1. 程式人生 > >關於客戶端與資料庫伺服器端的時間同步問題

關於客戶端與資料庫伺服器端的時間同步問題

這是一個做C/S的管理軟體開發時經常被忽略的問題,客戶端的時間與伺服器的時間如果有偏差,資料統計、報表等等肯定會有“意外”的情況發生。

意圖很簡單:從資料庫伺服器獲取到時間,根據這個時間修改當前客戶端電腦時間。

用Sql的函式getdate(),是比較容易的。

我們是基於dotnet4.0、EntityFramework開發軟體,所以希望用ESQL的方式獲取資料庫伺服器的時間,但昨天折騰了半天,還沒搞定。

如果有哪位同學已經解決了這個問題,希望能指點一下!

暫時解決,之所以說是暫時,是因為並沒有用Esql的方式,而是用T-Sql的方式。

以下是我的過程:

System.Data.EntityClient.EntityConnection   這個是實體概念模型與資料來源的連線,繼承自DbConnection

在這個連線下CreateCommand(),就需要寫Esql語句,我的語句是"SELECT VALUE CurrentDateTime()",卻是語法錯誤。翻遍了手冊和網路查詢,沒有任何有用的結果。

但在這個連線物件下有一個屬性StoreConnection,返回的是Sql方式的連線,在這個下面CreateCommand(),可以寫T-Sql語句,我的語句是"SELECT getdate()",執行成功。

以上是程式程式碼例子:

// 與資料庫伺服器的時間進行同步
System.Data.EntityClient.EntityConnection conn = (System.Data.EntityClient.EntityConnection)Blemployee.myData.Connection;

IDbConnection conn0
= conn.StoreConnection;

IDbCommand comm
= conn0.CreateCommand();


// comm.CommandText = "SELECT VALUE CurrentDateTime()";
comm.CommandText = " SELECT getdate() " ;

comm.CommandType
= CommandType.Text;

if (comm.Connection.State != ConnectionState.Open)
comm.Connection.Open();

object tt = comm.ExecuteScalar();

DateTime sqlDT
= Convert.ToDateTime(tt);

SetLocalTime(sqlDT);
// 設定本機時間

相關推薦

關於客戶資料庫伺服器時間同步問題

這是一個做C/S的管理軟體開發時經常被忽略的問題,客戶端的時間與伺服器的時間如果有偏差,資料統計、報表等等肯定會有“意外”的情況發生。 意圖很簡單:從資料庫伺服器獲取到時間,根據這個時間修改當前客戶端電腦時間。 用Sql的函式getdate(),是比較容易的。 我們是基於do

實現Android客戶Eclipse伺服器基於Okthhp簡單通訊

最近在重溫知識,所以藉此機會也想把自己寫的一些心得寫出來供大家分享,寫的有誤或者不好的地方望大家見諒,好了,廢話少說,直接進入正題,下面給大家介紹的就是基於目前主流網路通訊框架的okhttp實現的Android與Eclipse通訊。首先說明:我用的Android客戶端是And

PHP客戶C#伺服器 Socket通訊

using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Sockets; using System.Net; namespace UpdServer

Android客戶java伺服器的Socket連線

開發十年,就只剩下這套架構體系了! >>>   

Android手機客戶通過JSP實現Tomcat伺服器通訊(Msql資料庫,Json作為載體)--服務程式碼

伺服器端主要程式碼: 1.首先構建一個Person類,用來儲存使用者資訊 public class Person private String name; private String address; private Integer age; public P

記筆記:C# Socket客戶監聽伺服器處理方案【同步

方案主要功能:        (1)客戶端同步監聽來自伺服器端的資料(開啟子執行緒監聽)        (2)客戶端向伺服器端傳送資料(主執行緒傳送,並控制)        

XMPP學習——Android客戶openfire伺服器單雙向TLS通訊

本文從TLS安全傳輸層協議的簡單流程、如何生成自簽名CA證書、自頒發伺服器&客戶端證書、配置openfire伺服器安全連線去描述如何建立一個使用TLS加密的XMPP聊天通道。 這裡的smack版本是V4.2.3,openfire伺服器版本也是V4.2.3

Unity3d遊戲客戶Photon伺服器資料通訊

本文在上一篇博文的基礎上繼續介紹使用Unity3d遊戲客戶端與Photon Server資料通訊開啟Unity3d2017,新建專案,在Asset目錄下新建Plugins資料夾找到Photon SDK目錄下的lib檔案PhotonUnity3D.dll檔案,將其拖動到Unit

Android客戶PC伺服器實現Socket通訊(wifi)

本文介紹Android終端持續掃描AP資訊併發送給伺服器端的實現。首先基於TCP協議在Android終端和PC兩端之間形成網路虛擬鏈路。使用ServerSocket建立TCP伺服器端,然後在Android客戶端使用Socket的構造器來連線伺服器。其中Android終端通過WIFI連線和PC處於同一區域網

android客戶php伺服器的json資料簡單互動(二)

上一篇文章講的是最簡單的通過接送的格式完成android客戶端與php伺服器互動,也就是通過JSONObject物件來進行互動。         從上篇的文章程式碼就可以看出來,如果php陣列僅僅採用鍵值對的方式進行儲存,通過很簡單的方式轉換為json格式,之後在andr

C# PC客戶Android服務的Socket同步通訊(USB)

需求:       Android的apk獲取手機資訊,把結果發給PC client 注意地方:      1.android預設手機端的IP為“127.0.0.1”      2.要想聯通PC與android手機的sokcet,一定要用adb forward 來作下埠轉發

Android客戶Tomcat伺服器通訊實現登入驗證

一.功能描述   在Android客戶端實現登入介面,當將使用者名稱和密碼填入文字框並點選登入按鈕時,將認證資訊傳送至Tomcat伺服器進行認證,若使用者名稱和密碼匹配,則Android客戶端提示登入成功,否則提示登陸失敗。 二.開發環境 Android客戶端:Andro

Android客戶伺服器進行網路通訊

多寫技術文件,多寫技術文件,多寫技術文件,重要的事情說三遍...... ---------------------------------------------------------------------------------------------------

cocos2d-x客戶Java伺服器的通訊(一)

(⊙o⊙)…貌似自己已經有一段時間沒有寫部落格了,其實主要原因還是覺得自己水平有限,加上上班實在是太忙,實在抽不出時間來寫部落格。言歸正傳,大家都知道,在網路遊戲開發中, 網路通訊一直是個比較大的難題,一個伺服器可能要同時處理幾千上萬甚至上百萬的使用者資料,當然,僅僅是通訊

android客戶servlet伺服器互動簡單示例

前段時間需要寫一個能雙向解析XML的程式,但是客戶端只能從伺服器裡讀,但是死活傳不上去,倒騰了兩天終於搞好了。 下面直接貼示例程式碼,不明白的話再問吧。 這是android客戶端,記得得在AndroidManifest.xml檔案裡新增INTENET許可權。 publ

備份_由於客戶資料庫版本不統一引起imp匯入錯誤

原創作品,出自 “深藍的blog” 部落格,歡迎轉載,轉載時請務必註明以下出處,否則追究版權法律責任。 今日給研發哥們兒導些資料做測試,但研發在匯入時遇到了問題,如下: 第一眼看這個報錯,想到版

python--DenyHttp項目(1)--socket編程:客戶服務器

brush accept acc -- highlight 發送消息 src size 接受 查找了許多資料,實現了客戶端與服務器端的連接,通過虛擬機進行測試 服務器端IP:192.168.37.129 端口1122 客戶端IP:  192.168.37.1 端口1122

客戶服務器的交互

服務端 com 完成 客戶 mage 數據 block lin wid 客戶端和服務器端的交互模型: 客戶端發送請求 -> 服務器端接收請求 -> 服務端準備數據內容 ->服務器端把內容返回給客戶端 -> 客戶端接收返回的內容 -> 客戶端進行

【TCP通訊】多客戶連線一個伺服器總結

Windows下TCP通訊,多個客戶端連線伺服器端。 一、伺服器端流程實現如下: 1、通過socket函式,建立基於流式型別的socket,可名為serverSocket; 2、呼叫bind函式,繫結本地的監聽埠號和本地IP地址; 3、呼叫listen函式,開始監聽客戶端請求。其中該函式第二個引數指定了最大

AndroidJava伺服器資料互動和Java物件轉換成JSON物件

Ticket封裝成一個類 package com.model; public class Ticket { private int ticket_id; private int price; private int user