sqlite資料庫如何遠程連接代碼如下:
QSqlDatabase
db
=QSqlDatabase::addDatabase("QSQLITE");
db.setHostName("192.168.1.160");//設置你網路伺服器的IP
db.setDatabaseName("/share/personnel.db");//share共享目錄下的資料庫名
db.setUserName("PersionSql");//資料庫用戶名和密碼
db.setPassword("123456");
if
(!db.open())
qDebug()
<<
"Failed
to
connect
to
QSQLITE";
else
qDebug()
<<
"success!";
說明:訪問網路遠程資料庫則必須要關閉本機和遠程PC機上的防火牆,訪問的遠程資料庫的路徑不能為中文路徑
Ⅱ android 怎麼查看sqlite資料庫
在Android中查看和管理sqlite資料庫
在Android中可以使用Eclipse插件DDMS來查看,也可以使用Android工具包中的adb工具來查看。android
項目中的sqlite資料庫位於/data/data/項目包/databases中。
使用DDMS導出sqlite資料庫。
1、首先打開android項目的調試模式,然後找到顯示DDMS:
選擇DDMS
2、切換到DDMS,顯示File Explorer窗口,找到/data/data/
然後找到程序包的文件夾,打開databases,就能看到sqlite資料庫文件了。選擇將其導出。
這樣就把sqlite資料庫文件以文件的方式導出來了,然後使用sqlite界面管理工具如
sqlite administrator、sqlite man或者firefox插件sqlite manager等打開就可以了。
使用adb工具訪問sqlite資料庫
Android Debug Bridge(ADB)是Android的一個通用調試工具,它可以更新設備或模擬器中的代碼,
可以管理預定埠,可以在設備上運行shell命令,我們知道android是基於Linux內核,它的內部
文件結構也是採用linux文件組織方式,因此訪問它的文件結構需要使用shell。這次我們就會用shell
來訪問android應用中的sqlite資料庫文件。
1、運行cmd,切換到android-sdk目錄,運行adb.exe,加上參數shell,出現#號就代表進入了shell
命令模式,注意adb要在Android模擬器運行時才能進入shell:
2、shell命令記住兩個基本命令ls和cd,類似windows命令提示行中的dir和cd,代表列出當前目錄下
文件列表和進入到指定目錄。了解這兩個命令之後,就可以找到data/data/項目包名/databases:
找到資料庫文件:
接下來就是使用sqlite管理工具來進行操作了。鍵入sqlite3 資料庫名就進入了sqlite管理模式了。
在android的sdk中自帶了sqlite3.exe,這是sqlite的官方管理工具,它是一個命令行工具。為了使用
方便,將其路徑注冊到系統環境變數path中,即將;%Android_Home%加在Path中,這樣只樣運行sqlite3
,就能直接打開sqlite管理工具了。
sqlite管理資料庫篇
sqlite命令行工具默認是以;結束語句的。所以如果只是一行語句,要在末尾加;,或者在下一行中鍵入
;,這樣sqlite命令才會被執行。
sqlite常用命令:
.tables--查看資料庫的表列表
.exit--退出sqlite命令行
其他命令可隨時.help查看幫助。sql命令可直接在此命令行上執行即可
Ⅲ sqlite資料庫如何遠程連接
sqlite遠程連接示例
Sqlite 是一個只有幾百 k 大小的、 優秀的嵌入式資料庫,本身不帶有遠程連接的功能。由於其身材小,速度快並且為眾多的語言支持,所以在單機領域得到了廣泛的使用。但由於天然不支持服務 / 客戶端的模式,使其在遇到小型規模資料庫遠程連接的情況時不得不藉助於附加的編程。
單位有三百多人,作為網管每天要接到很多電話,有很多一時無法想起對應的名字,翻查通訊錄不僅速度慢而且容易漏過。為了方便起見,在 sqlite 上建立了一個通訊錄數據表,然後用 perl 編寫了一個查詢腳本。效果不錯的同時,也有同事希望可以得到一份拷貝。但是這時遇到一個問題,如何保證通訊錄在不同人手中保持版本的統一性。最好的辦法是建立一個服務 / 客戶端的模式,在本機上維護一個資料庫,而其它人通過連接資料庫得到相關的查詢結果。
具體的解決方法是這樣的:在本機上維護一個到 sqlite 資料庫的連接並建立一個來自於客戶端的 socket 的監聽,接受遠程查詢條件並回復查詢結果;客戶端志負責發送和接受這些最簡單的任務。
客戶端的代碼:
usestrict;
my$in_buffer=undef;
my$PF_INET=2;
my$port=2345;
my$remote_addr=pack('SnC4x8',$PF_INET,$port,192,168,138,228);
my$SOCK_DGRAM=2;
socket(UDP_CLIENT,$PF_INET,$SOCK_DGRAM,getprotobyname('udp'));
while(1){
print("輸入名字或號碼:");
my$out_buffer=<STDIN>;
chomp($out_buffer);
if($out_buffereq"exit"){last;}
send(UDP_CLIENT,$out_buffer,0,$remote_addr);
print("waitingforreply... ");
recv(UDP_CLIENT,$in_buffer,100,0);
chomp($in_buffer);
print("$in_buffer ");
}
close(UDP_CLIENT);
伺服器端的代碼:
BEGIN{
if($^Oeq'MSWin32'){
requireWin32::Console;
Win32::Console::Free();
}
}
usestrict;
useDBI;
#databaseparameters
my$db_path='d:/src/cc/phones.db';
my$dbh=DBI->connect("dbi:SQLite:$db_path",{PrintError=>0})ordie$DBI::errstr;
my$sth=undef;
#socketserverparameters
my$in_buffer=undef;
my$out_buffer=undef;
my$PF_INET=2;
my$port=2345;
my$local_addr=pack('SnC4x8',$PF_INET,$port,192,168,138,228);
my$SOCK_DGRAM=2;
socket(UDP_SERVER,$PF_INET,$SOCK_DGRAM,getprotobyname('udp'))ordie("$!");
bind(UDP_SERVER,$local_addr)ordie("$!");
listen(UDP_SERVER,10);
while(1){
#receivequerythensendresult
lastunlessmy$remote_addr=recv(UDP_SERVER,$in_buffer,100,0);
chomp($in_buffer);
if($in_buffer=~/^[0-9]{6}$/){
$sth=$dbh->prepare("select*fromphoneswherenumber=$in_buffer");
PROCEDURE:
$sth->execute();
my@items=$sth->fetchrow_array();
if(scalar(@items)){
$out_buffer=$items[0].'的虛擬網號碼是'.$items[1];
}else{
$out_buffer='查無此人';
}
}else{
$sth=$dbh->prepare("select*fromphoneswherename='$in_buffer'");
gotoPROCEDURE;
}
send(UDP_SERVER,$out_buffer,0,$remote_addr);
}
#disconnectfromsqlite
$dbh->disconnect();
Ⅳ sqlite資料庫怎麼打開
1、打開程序後,可以看到程序左邊的「資料庫列表」。展開可以查看到所有打開過的資料庫。