實際案例說明 -Master - Detail table 間的異動 |
|
Panda
一般會員 發表:11 回覆:22 積分:6 註冊:2002-03-11 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 由於坊間的書對於Delphi和資料庫的整合運用太過於簡單 , 造成只能作為入門書籍參考 不知站長是否能提攜初學者更進一層樓能以實際案例說明如何用ADO作Master - Detail table 間的異動,如何insert , update ,delete , call storeprocedure or package 並能以同一案例導使用者到Client-Server 及Multi-Tier 這要求會不會太過份 >>< face="Verdana, Arial, Helvetica"> 其實站長以前也有想過,做一個簡單的Master/Detail範例, 但我想每個人所用的方式都不同, 寫出來未必標準, 可以大家一起來討論看看! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
Panda
一般會員 發表:11 回覆:22 積分:6 註冊:2002-03-11 發送簡訊給我 |
我之前是想用Delphi Oracle 來作下列的Master - Detail 先出現查詢畫面 , 輸入公司名稱查出此公司資料 , 帶出下列資料 , 然後讓USER進行insert 、update 、delete等動作 Table 說明如下 : Company table (記錄 公司相關資料)
1 country_id 國家代碼
2 co_id 公司代碼
3 co_name 公司名稱
4 co_addr 公司住址
5 co_tel 公司電話
6 co_web 公司網站 Company Employee table (記錄 公司員工資料)
1 employee_id 員工工號
2 co_id 公司代碼
3 job_id 職務代碼
4 name 員工姓名
5 email 個人email COMBranch table (記錄 分行相關資料)
1 branch_id 分行代碼
2 classification 類別 ( Factory , Office , Branch)
3 co_id 公司代碼
4 branch_name 分行名稱
5 branch_addr 分行住址
6 branch_tel 分行電話 Branch Employee table (記錄 公司員工資料)
1 branch_id 分行代碼
2 job_id 職務代碼
3 name 分行員工姓名
4 email 個人email Country Table
1 Country_id 國家代碼
2 desct 國家名稱 Job Table
1 job_id 職務代碼
2 joblevel 職等
3 dept_id 部門代碼
2 desct 職務名稱 公司和工廠的relation 為(1:m):
一家公司可能有多個分行 , 一個分行只能為一個公司所有 公司或分行 和員工的relation 為(1:m) Data Dictionary
create table country(
country_id char(3),
desct varchar2(20),
primary key (country_id)); insert into country values(‘313’,’South Korea’);
insert into country values(‘307’,’Japan’);
insert into country values(‘601’,’United State’);
insert into country values(‘312’,‘Singapore’); create table classification(
classification_id char(2),
desct varchar2(20),
primary key(classification_id)); insert into classification values(‘01’,‘Factory’);
insert into classification values(‘02’,‘Branch’);
insert into classification values(‘03’,‘Office’); create table company (
co_id char(8),
country_id char(3),
co_name varchar2(50) not null,
co_addr varchar2(50),
co_tel varchar2(15),
co_web varchar2(30),
primary key (co_id),
foreign key (country_id) references country(country_id)); insert into company values(‘60100001’,’601’,’Yahoo-USA’,’L.A.’,’88888888’,’www.yahoo.com’);
insert into company values(‘30700001’,’307’,’Yahoo-Japan’,’L.A.’,’66666666’,’www.yahoo.com’); create table department(
dept_id char(4),
desct varchar2(30),
primary key(dept_id)); insert into department values(‘8964’,’Engineer Standard Division’);
insert into department values(‘8888’,’Marketing Division’); create table job(
job_id char(4),
joblevel char(2),
dept_id char(4),
desct varchar2(20),
primary key(job_id),
foreign key (dept_id) references department(dept_id)); insert into job values (‘008’,’07’,’8964’,’Engineer’);
insert into job values (‘006’,’06’,’8888’,’Marketing Specialist’); create table com_employee(
employee_id char(5),
co_id char(8),
job_id char(4),
name varchar2(30),
email varchar2(50),
primary key(employee_id) ,
foreign key (co_id) references company(co_id),
foreign key (job_id) references job(job_id)); insert into com_employee values(‘1234’,’60100001’,’008’,’Chris’,’chris@yahoo.com.tw’);
insert into com_employee values(‘5678’,’30700001’,006’,’Joan’,’joan@yahoo.com.tw’); create table com_branch(
branch_id char(8),
classification varchar2(2),
co_id char(8),
branch_name varchar2(50),
branch_addr varchar2(50),
branch_tel varchar2(15),
primary key (branch_id),
foreign key(co_id) references company(co_id)); insert into com_branch values(‘60110001’,’01’,’60100001’,’Branch USA’,’USA Address’,’5555555’);
insert into com_branch values(‘30710001’,’01’,’60100001’,’Factory Japan‘,’Japan Address’,’2222222’); create table branch_employee(
branch_id char(8),
employee_id char(5),
job_id char(4),
name varchar2(30),
email varchar2(30),
primary key (employee_id) ,
foreign key (branch_id) references com_branch(branch_id),
foreign key (job_id) references job(job_id));
insert into branch_employee values (‘60110001’,’1111’,’008’,’Jemmy’,’jemmy@yahoo.com’);
insert into branch_employee values (‘60110001’,’1211’,’008’,’abc’,’abc@yahoo.com’);
insert into branch_employee values (‘30710001’,’1311’,’008’,’Jemmy’,’jemmy@yahoo.com’);
insert into branch_employee values (‘30710001’,’1411’,’006’,’Alex’,’alex@yahoo.com’);
insert into branch_employee values (‘30710001’,’1511’,’008’,’Tom’,’tom@yahoo.com’);
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |