数据库的联系(求救119)(100分)

  • 主题发起人 主题发起人 dj
  • 开始时间 开始时间
D

dj

Unregistered / Unconfirmed
GUEST, unregistred user!
大家好:
我想知道两个数据库(不是表)中的表(表1、表2)如何建立联系,如果想根据其中一个表(表1)的结构来修改另一个表(表2)的表结构,并将表2的数据保留,修改后再拷入表2中;或将表1的新数据拷入表2中;
如何通过写程序实现??
不知是否可写一段代码发给我?
(jie_er@163.net )
 
两个表的联系要看你要什么样的联系了!
不妨你举个具体例子,让大家来告诉你!
还有:问题要注意换行,要不大家看不到你
的问题了 :-)
 
用Query通过DataSource建立关系.提个建议,不治你的具体要求是什么?
 
TTable里有CreateTable,和batchmove.
 
>> 我想知道两个数据库(不是表)中的表(表1、表2)如何建立联系,
建立什么联系? 是不是简单的关联, 类似于1对多的关系?
>> 如果想根据其中一个表(表1)的结构来修改另一个表(表2)的表结构,
>> 并将表2的数据保留,修改后再拷入表2中;
两个表的结构有何差异, 这关系到表2的数据是否还能有效的放回到表2中,
例如 表1 : F1 CHAR(13), F2 NUM(2)
表2 : F2 NUM(13), F2 NUM(10)
就难以保证有效的还原数据.
>> 或将表1的新数据拷入表2中;
如果两个表结构一样, 就不会有问题.
不一样, 就要看你的要求了.
总之, 你要把要求说的详细一些, 大家才好帮助你.
 
用sql可以同时取不同数据库里(甚至不同server上)的表, 只要在表名前带上数据库名即可.
例如
select * from DataBase1.Table1, DataBase2.Table2
 
You could use such way
1 Query: select d1.f1,d2.f1
from database1.table d1,database2.table,d2
where d1.key = d2.key
2 Table: use some property just like mastersource or something alike
for more info u could see some book or delphi help
 
大家好:
我想大家可能未明白我的意思我在重复说明:
我的问题是如果数据库中的某个表的结构发生
改变,但我需要保留原表的数据,如何在程序中
实现既改变表的结构,并可以恢复原表的数据呢?
两个表相互拷数据没问题。
继续有一个问题:对sysbase any where 类型的
数据库如何进行备份?
 
我正在做一个有关程序,以下是动态创建表source code example:
我用dbaseIV , 其它也类似吧

//表名:
CurrTable :='ZJ'+Copy(FormatFloat('0000',Year),3,2);
Table1.Active := False;
Table1.DatabaseName := 'KjScada';
Table1.TableType := ttDbase;
Table1.TableName := CurrTable ;
if not Table1.Exists then
begin
with Table1.FieldDefsdo
begin
Clear;
Add('NO', ftInteger, 0, False);
Add('LOC1', ftFloat, 0, False);
Add('LOC2', ftFloat, 0, False);
Add('TIME', ftString,8, False);
Add('DATE', ftString, 8 , False);
end;
Table1.CreateTable;
Table1.Active := True;
end else
begin
Table1.Active := True;
Table1.Append;
Table1.FieldByName('Centerid').asinteger := 1;
Table1.FieldByName('NO').asinteger := GetInterID(PkgStr);
Table1.FieldByName('LOC1').asfloat := Zj_Formula(GetDataVal(PkgStr,1),GetInterID(PkgStr),1);
Table1.FieldByName('LOC2').asfloat := Zj_Formula(GetDataVal(PkgStr,2),GetInterID(PkgStr),2);//赋值
Table1.FieldByName('Date').asstring := DatetoSTr(date);
Table1.FieldByName('Time').asstring := TimetoStr(Time);
Table1.Post;
end;
 
接受答案了.
 
后退
顶部