我现在做毕业设计遇到一个问题,请教一下各位:我做的是一个电话业务处理系统,其中当受理的业务是新装电话的时候,处理时需要给该用户配一个空闲的电话号码。
应用程序方面:
我用的是一个DBLookupComboBox,当点击它时执行查询得到空闲号码显示在下拉列表中,然后赋给该字段。
数据库方面:
该单位原来有一个电话档案系统,其数据库的电话档案表中有个字段是电话号码,现在我在我的数据库中建了一个所有电话号码的表,它们都是在SQL Server2000中的,要是在一个数据库中的话,通过下面语句:
select telnum
from Table2
where telnum not in(select telnum from Table1)
即可得到空闲号码。可是涉及两个数据库该怎样做?
一个Query不能同时连接两个数据库,这种涉及两个数据库的查询必须用两个Query吗? 如果有其它的办法请各位教教我,先感谢了!
另:我没有建立数据库别名
这里有:
C + + B u i l d e r 支持不同类型查询—异类查询,也就是说,可以对在多个数据
库中的数据表进行查询。一个异类查询可以将不同服务器上的甚至是不同类型的服务器上的数据表结合。
例如,一个异类查询可能打开一个O r a c l e 数据库的数据表、一个S y b a s e 数据库的数据表以及一个本地
d B A S E 数据表。当执行一个异类查询时,B D E 使用Local SQL 解析并处理查询。因为B D E 使用Local SQL ,
因此扩展的、特定服务器的S Q L 句法不支持。
要执行一个异类查询,遵循以下步骤:
1) 为在查询中每一个要存取的数据库定义单独的B D E 别名。保持T Q u e r y 的D a t a b a s e N a m e 属性为空白。
所使用的两个数据库名字将在S Q L 语句中指定。
2) 在S Q L 属性中指定要执行的S Q L 语句。在S Q L 语句的每一个数据表名字之前加上每一个数据库的
B D E 别名,以便数据表能被找到。B D E 别名在数据表引用之前,并加上冒号,整个引用用双引号括起来。
3) 在P a r a m s 属性中为查询设置任意参数。
4) 在首次执行查询前调用P r e p a r e 方法准备查询。
5) 根据要执行的查询的类型调用O p e n 或E x e c S Q L 方法。
例如,假定为一个O r a c l e 数据库定义了B D E 别名O r a c l e 1 ,它有一个C U S TO M E R 数据表;为一个
S y b a s e 数据库定义别名S y b a s e 1 ,它有一个O R D E R S 数据表。一个针对这两个数据表的简单的查询将是:
除了用B D E 别名来指定在异类查询中的数据库外,也可以使用T D a t a b a s e 组件。设置T D a t a b a s e 指向
数据库,并设置T D a t a b a s e : : D a t a b a s e N a m e 为任意但是唯一的值,然后在S Q L 语句中使用那个值来取代
B D E 别名。