*** 作环境: 此数据库服务器ip为192.168.196.76,有center与branch两个库,一般需要将center的表数据同步到branch,center为源库,branch为目标库,具体步骤如下:
1.在源库创建到目标库的dblink
create database link branch --输入所要创建dblink的名称,自定义
connect to dbuser identified by “password” --设置连接远程数据库的用户名和密码
using '192.168.196.76/branch' --指定目标数据库的连接方式,可用tns名称
在创建dblink时,要注意,有时候可能会报用户名和密码错误,但实际上我们所输入的账户信息是正确的,此时就注意将密码的大小写按服务器上所设置的输入,并在账号密码前号加上双引号(服务器版本不同造成的)。
2.成功后验证dblink
select * from tb_bd_action@branch--查询创建好的brach库
正常情况下,如果创建dblink成功,可采用该方式访问到远程数据库的表.
3.通过merge语句完成表数据同步
此例中需要将center库中的tb_sys_sqlscripe表同步到branch,简单的语法如下:
merge into tb_sys_sqlscripe@branch b using tb_sys_sqlscripe c on (b.pk=c.pk) --从center将表merge到branch,同步的依据是两个表的pk
when matched then update set b.sqlscripe=c.sqlscripe,b.author=c.author --如果pk值是相同则将指定表的值更新到目标表
when not matched then --如果pk值不一至,则将源表中的数据整条插入到目标表中
insert values (c.pk, c.fk, c.createtime, c.lastmodifytime,c.author,c.module,c.deleteflag, c.scripttype)
commit --记得merge后必须commit,否则更改未能提交
4.为方便每次需要同步时自动完成同步工作,可将该语句做成存储过程或脚本来定时执行或按要求手动执行,简单说一下创建脚本的方法:
a.创建merge文件夹
b.先将merge语句写完整后,存到merge.sql文件中
c.新建merge.bat文件,编辑后写入以下内容
sqlplus user/password@serverip/database @"%cd%\merge.sql"
我写过一次,好多功能都没实现,这是我们老师对我们的要求,你有什么问题,加我qq331074366,我教你数据库设计
数据库名称:MYqq
数据库表信息
(1) 用户表:Users,用来寸放用户的基本信息。安全设置信息
表名 user
主键 ID
列名 数据类型 允许空 说明
Id Int 否 主键,自动增长,标识种子为10000
LoginPwd Varchar(50) 否 用户密码
friendshippolicyid int 否 外键,对应FriendshipPolicy表中的Id,当别人添加自己为好友时,是否同意,需要验证
nickname Vachar(50) 否 用户呢称
faceid int 是 用户头像的索引,使用的imagelist头像列表的索引
sex Varchar(50) 否 性别,两个值:男,女
age int 否 年龄
name Varchar(50) 是 真实姓名
startid int 是 外键,对应star表中的ID表示星座
bloodtypeid int 是 外键,对应boodtype中的id,表示血型
(2) 好友表:friends,用来存放用户之间的好友关系,一对好友关系存为一条记录。
表名 Friends
主键 Id
列名 数据类型 允许空 说明
Id Int 否 主键,自增
Hostid Int 否 好友关系中,主任的号码
FriendId Int 否 好友关系中,好友的号码
(3)好友策略表:FriendshipPolicy ,用来存放几种好友策略。
表名 FriendshipPolicy
主键 Id
列名 数据类型 允许空 说明
Id Int 否 主键,自增,标识种子1
FriendshipPolicy Varchar(50) 否 好友策略的描述
FriendshipPolicy 表中包含3条数据,如图 1 所示。
允许任何人加我为好友
需要验证
不允许
(4)星座表:Star ,存放12星座的名称和编号,是基础数据表,各星座的名称进提供的电子资料。
表名 Star
主键 Id
列名 数据类型 允许空 说明
Id Int 否 主键,自增,标识种子 1
Star Varchar(50) 否 星座名称
(5)血型表:BlooType,存放4中血型的名称和编号,是基础数据表。
表名 BlooType
主键 Id
列名 数据类型 允许空 说明
Id Int 否 主键,自增,标识种子 1
BlooType Varchar(50) 否 血型名称
(6)消息表:Messages,存放聊天信息、添加好友请求纤细。
表名 Messages
主键 Id
列名 数据类型 允许空 说明
Id Int 否 主键,自增,表识种子 1
FromUserId Int 否 发消息的用户号码
ToUserId Int 否 收消息的用户号码
Messages Varchar(50) 是 消息内容
MessageType Int 否 外键,对应 MessafeType表中的Id。表示消息类型
MessageState Int 否 消息状态,0表示未读,1表示已读
MessageTime dateTime 否 消息发送的时间,插入数据是,由数据库自动生成
(7)消息类型表:messagetype,存放消息的类型描述和编号。
表名 messagetype
主键 Id
列名 数据类型 允许空 说明
Id Int 否 主键,自增,标识种子 1
MessageType Varchar(50) 否 消息类型
Messagetype 表包含2条数据,如图所示
Id messagetype
1 普通聊天消息
2 添加好友消息
三、要求
利用winform编程,实现myqq聊天工具。要求实现用户注册,用户登录,好友列表,修改个人信息,查找/添加好友,聊天功能,该工具是c/s结构,客户端通过公共的数据库交换信息,消息的发送和读取都是通过 *** 作数据库来完成的。在程序中采用定时扫描数据库的方式来查找未读消息。
1.“注册”窗口界面如下图所示。输入注册的基本资料,向数据库插入一条用户记录,在数据库中自动生成一个新的myqq号码(users表的id 字段),以消息框的形式告诉用户他申请成功的myqq号码。
2.“登陆”窗口界面如下图所示。单击“申请号码”标签,打开注册界面。在登陆界面输入myqq号码和密码后,单击‘登陆‘按纽,打开登陆后的主界面’忘记密码功能不要求实现,只要放置一个带链接的标签控键即可。
3登陆后的主界面如下图所示。登陆后要在“我的好友”列表中显示好友列表,包括好友的头像和呢称,在主窗体的顶部要显示当前登陆的用户头像,呢称和myqq号码。
实现右键菜单功能,通过右键菜单能够切换大小头像。能够把陌生人转为好友,能够删除一个好友或陌生人。
当有新的聊天消息时候。发来的消息的好友头像要闪动,双击头像d出“聊天”窗口后,头像停止闪动,当有添加好友请求消息时,窗体底部的小喇叭要闪烁,单击喇叭d出“系统消息”窗体后,喇叭停止闪烁。
通过主窗体下方的按纽打开“查找/添加好友”窗体,“个人信息”窗口,“系统消息”窗口
提示:
显示好友列表的控键可以用提供的第三方控键sidebar,见提示的电子资料,该控键的命名空间为Aptech.ui。
Sidebar是一个能够以分组形式显示列表的控件,能够实现类似QQ的好友分组功能,sidebar控键中可以包含很多组(sbgroup),每个组可以包含很多sidebar项(sbitem)。
Sidebar的列表项有两种显示方式:大图标和小图标,它可以通过它的view属性来设置。
Sidebar 控件还有一个imagelist 属性,可以和一个imagelist控件关联,列表项中显示的
图片就是存放在imagelist控件中的图片。可以通过Sidebar项(sbitem)的imageindex
来指定图片在imagelist控件中的索引。
代码提示:
//添加Sidebar的两个组
Sbfriends.addgroup(“我的好友”);
Sbfriends.addgroup(陌生人);
//创建一个Sidebar项,指定显示的文本和图片索引
Sbitem item = new SbItem((string)dataReadwr[“NickName”],(int)dataReader[“FaceId”])
//向“我的好友“组中添加一项
sbFriends.Group[0].Item.Add(item)
4.“查找/添加好友”窗体界面如下图所示。
点击“查找”后结果如下图所示:
单击“上一步”则回到“基本查找”页面。
点击“精确查找”,如下图所示:
输入帐号或呢称,点击“查找”可以显示查询结果。
“高级查找”界面如下图所示:
*** 作方法同基本查找类似。
单击“查找”按纽后在窗体中显示查询结果。要求以datagridview 控键显示查找的结果。选中一个用户,单击“加为好友”按纽,进行添加好友的 *** 作,并根据不同的情况d出消息对话框,告知用户如“添加好友请求成功”,“对方不让任何人添加他为好友“,“对方需要身份验证,已发出验证请求”等。如果需要身份验证,不要求输入验证消息内容,直接发送验证消息即可。
5“聊天”窗口界面如图13 所示。当有消息来时。主窗体中的好有头像闪烁,双击头像,d出“聊天”窗口,在“聊天”窗口中显示好友为读消息。并能够给好友发送消息。
6“个人信息”窗口界面如下图所示,在“个人信息”窗口能够修改个人的基本资料,进行安全设置。单击头像旁边的按纽,d出“头像选择“窗口。
7“头像选择”窗体界面,头像列表要求使用listview 控键实现。双击窗口中头像或者单击“确定”按纽,更新“个人信息”窗口中的头像。
8“系统消息”窗口界面如QQ。单击主窗体低部的喇叭按纽,d出“系统消息”窗口,显示向用户发送的未读的添加好友请求消息。单击“同意”按纽,实现对方添加当前用户为好友的 *** 作。
四、推荐实现步骤
1. 建立数据库,数据表,建立表的关系。
2. 建立myqq项目
(1) 实现注册功能
(2) 实现登陆功能
(3) 实现查找/添加好友功能
(4) 实现好友列表功能
(5) 实现聊天功能
(6) 实现修改个人信息功能
3. 测试运行
一. 注意事项
A. 仔细审题,把题目要求理解准确;
B. 请注意按照界面设计要求来进行界面设计
C. 请注意代码的书写,命名符合规范和适当的注释;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)