微信密码重新设置失败重新导入数据库失败

本文版权归cxun所有,如有转载请注明出处与本文链接,谢谢!原文地址:/cxun/p/4544000.html
在手机中把与自己联系好几年的好友的聊天记录不小心删除了,痛苦万分,好在对方的手机里还有一份完整的聊天记录,想把对方的聊天记录转移到自己的手机中来,以下是具体的补救方法。
使用软件:SQLite Expert、iTools
适用手机:iPhone
假设A手机是误操作删除记录的手机,B手机是完整数据源手机。
首先,先把B手机的数据备份好,建议使用(现在已更新到3.0,本文截图依然是1.0的),找到微信App中的文档文件夹Documents,整个复制到本地硬盘保存起来吧。
2.计算MD5值
首先要弄清楚双方微信ID用户名的MD5值,这个很重要,在后面操作过程中极易弄混淆。在Documents中,会有若干个MD5哈希值为名称的文件夹,如果该手机只登录过一个微信帐号,就会只有一个MD5哈希值的文件夹;如果有多个,你不知道哪个才是你常用微信帐号文件夹的话,告诉你一个办法,哪个文件夹占用空间大,哪个就是你常用的。那么,这个文件夹名称就是A手机微信ID哈希值,以下简称&A_HASH&。
依次打开其内部文件夹,找到聊天记录核心文件:MM.sqlite,很明显,是个sqlite数据库文件。
使用数据库软件打开,这里推荐使用,个人版是免费的。在左侧树状图中找到好友数据表&Friend&,其中,UsrName字段就是每个好友的微信ID用户名,NickName字段就是好友的昵称,可以通过昵称找到B手机的微信ID用户名,然后使用算出它的MD5值,以下简称&B_HASH&。
3.复制聊天记录
首先把A手机的数据库文件复制到本地,即&/Documents/A_HASH/DB/MM.sqlite&,使用SQLite Expert打开,在左侧树状图中找到想恢复的好友的数据表&Chat_B_HASH&,这里有两个情况,分开讨论:
(1)如果是刚刚在A手机中误删除的,且没有与B发生过后续通信,该表则不存在,点击SQLite Expert的SQL标签页,输入SQL语句创建该表:
SQL语句如下(记得改为正确的&B_HASH&):
CREATE TABLE [Chat_B_HASH]
(TableVer INT4,
MesLocalID INTEGER PRIMARY KEY,
MesSvrID INTEGER,
CreateTime INTEGER,
Message TEXT,
Status INTEGER,
ImgStatus INTEGER,
Type INTEGER,
Des INTEGER);
按F5,如果没报错的话,则该数据表创建成功。
(2)如果在A手机中误删除之后,与B产生了新的通信,则该数据表已存在,且存有删除后的通信数据。由于一会要把B手机密切好友的所有聊天记录复制到A手机中,此时A手机与B好友的聊天数据已没有意义,为了避免出现数据重复与其它未知的错误出现,建议将A手机中与B好友的数据删除。删除方法是在左侧树状图中点击B好友的数据表&Chat_B_HASH&(千万别点错),在SQL标签页中输入SQL语句并执行:
delete from Chat_B_HASH
同时,还要使用iTools在iPhone中删除与B好友聊天记录相关的语音、图片、视频等文件(不放心的话可以先把这些数据备份出来),在iTools中找到这3个文件夹,在文件列表中按&CTRL + A&全选,按&Del&删除。
/Documents/A_HASH/Audio/B_HASH
/Documents/A_HASH/Img/B_HASH
/Documents/A_HASH/Video/B_HASH
接下来就是重头戏了,要把B手机中与A聊天的记录复制到A的数据库文件MM.sqlite中。首先找到并使用SQLite Expert打开第1步中B手机的数据库文件&\Documents\B_HASH\DB\MM.sqlite&,在左侧树状图中找到A的微信数据表&Chat_A_HASH&,点击,在右侧选择&Data&标签页,点击表中数据任意记录,按&CTRL + A&全选(数据量很大的话需要等几秒才有反应),再按&CTRL + C&复制,然后在左侧树状图中选择A手机的数据库,找到刚才3.(1)步创建或3.(2)步删除数据的数据表&Chat_B_HASH&,在右侧&Data&标签页下的数据记录位置中点击一下,按&CTRL + V&粘贴(数据量很大的话也要等几秒才有反应),完成数据的复制。为了避免将A和B的数据库弄混淆,复制完后最好把B的数据库关闭。
4.修改收信与发信的标志位
由于在B手机的微信中,看到的聊天记录中A是在左边,B是在右边,A的对话框泡泡是白色,B的是绿色,现在数据直接复制到A的数据库文件中后,需要将两者的发信收信标志位交换,才能在A的手机中正确显示,否则的话会看到原本是A说的话,变成B说的话了。
在SQLite Expert中,点击刚才粘贴的数据表&Chat_B_HASH&,点击右侧的&SQL&标签页,依次输入并执行以下SQL语句:
update Chat_B_HASH set des=2 where des==0
update Chat_B_HASH set des=0 where des==1
update Chat_B_HASH set des=1 where des==2
切记!这3条语句要一条接一条地执行!即:输入第1条,按一次F5,删掉,再输入第2条,再按一次F5,再删掉,然后再输入第3条,按一次F5,完毕!
5.修改视频数据的标志位
这一步若不执行的话,在最后完成后会造成A手机中视频旁边出现感叹号的问题。在SQLite Expert中,点击刚才粘贴的数据表&Chat_B_HASH&,点击右侧的&SQL&标签页,输入并执行以下SQL语句:
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="0"','status="4"') where type=43 and des=1;
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="1"','status="4"') where type=43 and des=1;
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="2"','status="4"') where type=43 and des=1;
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="3"','status="4"') where type=43 and des=1;
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="0"','status="3"') where type=43 and des=0;
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="1"','status="3"') where type=43 and des=0;
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="2"','status="3"') where type=43 and des=0;
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="4"','status="3"') where type=43 and des=0;
若最后完成后仍发现视频旁边有感叹号出现,请使用终极方法:拿另一台iPhone C,通过WIFI聊天记录迁移的方式迁移到C手机,再迁移回A手机。在迁移过程中会自动修复。
另外,如果B手机的聊天记录是从Android版本的微信迁移过来的,需要执行以下SQL语句,原因是老版的Android微信将视频格式的标志位存储为&44&,需要改成&43&:
update Chat_B_HASH set type=43 where type=44
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'type="44"','type="43"') where type=43
&6.复制数据到A手机
进行以上数据库修改操作之后,关闭SQLite Expert(否则复制回iPhone会出错),将修改好的MM.sqlite文件使用iTools导入回A手机微信APP的相应文件夹,即:&/Documents/A_HASH/DB/MM.sqlite&
然后是将B手机中与A聊天的语音、图片、视频导入到A手机微信APP的相应文件夹中,假设在第1步中从B手机备份出来的Documents文件夹存放在D盘,使用iTools将这三个文件夹中的所有文件拖入A手机的微信APP对应的文件夹中:
D:\Documents\B_HASH\Audio\A_HASH
iTools:/Documents/A_HASH/Audio/B_HASH
(文件后缀是:*.aud 等等)
D:\Documents\B_HASH\Img\A_HASH
iTools:/Documents/A_HASH/Img/B_HASH
(文件后缀是:*.pic 与 *.pic_thum 等等)D:\Documents\B_HASH\Video\A_HASH
---& iTools:/Documents/A_HASH/Video/B_HASH
(文件后缀是:*.mp4 与 *.video_thum 等等)
在本文的这些操作中,难点就是将A与B弄混淆,因此,在进行此项工作以前,对A与B手机的备份显得尤为重要,一旦弄错,还可以重头再来。
阅读(...) 评论()请问微信能否与CRM对接,我想把公司的CRM系统内的数据导入到微信号上来。请问如果可以的话,大致如何实现,最近再研究微信,有点小白。谢谢 - 微信公众平台开发者问答系统
请问微信能否与CRM对接,我想把公司的CRM系统内的数据导入到微信号上来。请问如果可以的话,大致如何实现,最近再研究微信,有点小白。谢谢
2013年 11月 20日
(120 积分)
请问微信能否与CRM对接,我想把公司的金软CRM系统内的数据导入到微信号上来。
请问如果可以的话,大致如何实现,能发一点相关资料,例如是哪个接口实现的。微信提供的相关资料发点,谢谢了。的最近再研究微信,有点小白。谢谢。
不能回答已答过的问题、已关闭的问题和你自己的提问2个回答
服务号+菜单
然后读取你的系统的信息,显示在微信公众平台上
不过你是CRM,应该还会更复杂一点,估计你还想移植一些CRM系统的业务功能到微信公众平台上
2013年 11月 20日
(420 积分)
一、将CRM的数据作为微信的数据源即可吧,没必要也不太可能把数据全部导入微信号;二、客户端(至少表现层)肯定是要再开发的,估计你们公司的CRM也不是面向移动终端的吧;三、微信的应用逻辑和表现方式都有其特定的模式,需要适应才行
2013年 11月 20日
(4,000 积分)}

我要回帖

更多关于 微信的数据库修复失败 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信