实时扫描数据库的方法如何实现

实时扫描数据库的方法如何实现,第1张

为方便完成指定数据表的同步 *** 作,可以采用dblink与merge结合的方法完成。

*** 作环境: 此数据库服务器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. 请注意代码的书写,命名符合规范和适当的注释;


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6603410.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-25
下一篇 2023-03-25

发表评论

登录后才能评论

评论列表(0条)

保存