01
Aug.2008


作者:Aleaf       

飞信聊天记录存储路径:
 C:\Documents and Settings\%user%\Application Data\Fetion 下对应飞信号为文件夹的history.dat

该文件是SQLite数据库,密码为对应的飞信号。下面是存储数据库文件的表及视图的基本结构。

===========================================================
table:Player

CREATE TABLE Player(
Uri VARCHAR(256) PRIMARY KEY,
Name VARCHAR(256),
Type INTEGER)

===========================================================
table:MessageBody

CREATE TABLE MessageBody(
ID VARCHAR(64) PRIMARY KEY,
SenderUri VARCHAR(256),
SenderName VARCHAR(256),
Body VARCHAR(1000),
Extend VARCHAR(1000),
MessageType INTEGER,
Time DATETIME)

============================================================
table:Message

CREATE TABLE Message(
MessageID VARCHAR(64),
ReceiverUri VARCHAR(256),
ReceiverName VARCHAR(256),
STATUS INTEGER,
PRIMARY KEY (MessageID, ReceiverUri))

============================================================
view:vMessage

CREATE VIEW vMessage AS
SELECT MessageBody.ID AS ID, MessageBody.SenderUri AS SenderUri , MessageBody.SenderName AS SenderName , Message.ReceiverUri AS ReceiverUri , Message.ReceiverName AS ReceiverName , MessageBody.Body AS Body , MessageBody.Extend AS Extend,
MessageBody.MessageType AS MessageType , Message.STATUS AS STATUS , MessageBody.[Time] AS [Time] , P2.[Type] AS SenderType , P1.[Type] AS ReceiverType
FROM Message INNER JOIN
MessageBody ON Message.MessageID = MessageBody.ID
INNER JOIN Player P1 ON Message.ReceiverUri = P1.Uri
INNER JOIN Player P2 ON MessageBody.SenderUri = P2.Uri

============================================================ 
view:vPlayerRef

CREATE VIEW vPlayerRef AS
SELECT COUNT(MessageBody.SenderUri) + COUNT(Message.ReceiverUri) AS RefCount, Player.Uri AS Uri
FROM Player LEFT OUTER JOIN MessageBody ON Player.Uri = MessageBody.SenderUri LEFT OUTER JOIN Message ON Player.Uri = Message.ReceiverUri
GROUP BY Player.Uri

============================================================

 这样就可以对该数据库进行读写操作,实现对聊天记录的查看、导出、导入等功能了!

 (本文资料来源:http://www.dotnetthink.com)

推荐(0)
收藏

发表评论: