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、打开程序后,可以看到程序左边的“数据库列表”。展开可以查看到所有打开过的数据库。