;
帖子
3919 
精华
积分
11710 
鱼币
0 ¥ 
来自
大连 
在线时间
1858 小时 
注册时间
2007-6-11 
最后登录
2009-10-20 

贴图大师勋章新人进步勋章宣传大使勋章论坛元老勋章

3
发表于 2009-1-5 19:48 | 只看该作者
鍒╃敤Delphi寮鍙戠綉缁滄暟鎹簱搴旂敤 - 缂栫▼搴 - Powered by SupeSite

浣犵殑浣嶇疆锛缂栫▼搴 >> 璧勮 >> Delphi >> 鏁版嵁搴撳簲鐢 >> 璇︾粏鍐呭 鍦ㄧ嚎鎶曠ǹ

鍒╃敤Delphi寮鍙戠綉缁滄暟鎹簱搴旂敤

鍙戝竷: 2008-6-26 20:19 |  浣滆: admin |   鏌ョ湅: 11娆

Delphi 鏄叿鍙鍖栫晫闈㈢殑闈㈠悜瀵硅薄缂栫▼璇█锛屽畠浠ュ叾鍔熻兘寮哄ぇ銆佺畝渚挎槗鐢ㄧ瓑璇稿鐗规э紝娣卞彈缂栫▼浜哄憳鐨勬杩庛侱elphi 涓彁渚涗簡鏁版嵁搴撳紩鎿 BDE(Borland Database Engine)锛屽苟鍐呭惈浼楀鐨勬暟鎹簱璋冪敤鏋勪欢锛屼负缂栫▼浜哄憳寮鍙戝鎴/鏈嶅姟鍣ㄥ簲鐢ㄧ▼搴忔彁渚涗簡鏂逛究銆傞氬父鎯呭喌涓嬶紝鍒╃敤 Delphi 寮鍙戞暟鎹簱搴旂敤绋嬪簭锛屽彲浠ヤ娇鐢═Table銆乀DataSource銆乀DBEdit銆乀DBNavigator绛夋瀯浠躲傚彧瑕佹纭缃簡鏋勪欢鐨勬煇浜涘睘鎬э紝鍐嶇紪鍐欏繀瑕佺殑绋嬪簭浠g爜瀵逛竴浜涚壒瀹氫簨浠惰繘琛屽鐞嗭紝灏辫兘澶熷畬鎴愬澶氱鏁版嵁搴撹繘琛岀殑鏁版嵁澶勭悊锛屼緥濡傦細璁板綍鐨勮緭鍏ャ佷慨鏀广佸垹闄ゅ拰鏌ヨ绛夈傝繖鏍峰仛铏界劧鍙渶瑕佺紪鍐欐瀬灏戦噺鐨勭▼搴忎唬鐮佸氨鑳借揪鍒板緢濂界殑鏁堟灉锛屼絾濡傛灉鍦ㄧ▼搴忚璁¤繃绋嬩腑锛屾煇浜涙暟鎹〃鐨勭粨鏋勫彂鐢熶簡鏀瑰彉锛屽垯蹇呴』淇敼涓庢鏁版嵁琛ㄦ湁鍏崇殑鎵鏈夋瀯浠剁殑灞炴э紝杩欏皢浣跨▼搴忓憳闄峰叆绻佺悙鐨勯噸澶嶅姵鍔ㄤ腑銆

銆銆涓洪伩鍏嶄笂杩扮殑楹荤儲锛屾垜浠彲浠ュ湪缂栧啓缃戠粶鏁版嵁搴撳簲鐢ㄧ▼搴忔椂閲囩敤缁撴瀯鍖栨煡璇㈣瑷 SQL(Structured Query Language)锛岃繖鏍蜂笉浠呭彲浠ユ洿鏂逛究鍦颁笌璇稿 SQL Server銆丱racle 绛夊悇绉嶅悗鍙版暟鎹簱杩涜鍔ㄦ佺殑鏁版嵁浜ゆ崲锛岃屼笖鍙互浣跨▼搴忕殑淇敼鍜岀Щ妞嶆洿鍔犵伒娲汇傛垜浠互鏁版嵁杈撳叆妯″潡涓轰緥锛岃鏄庡紑鍙戝鎴/鏈嶅姟鍣ㄥ簲鐢ㄧ▼搴忔椂濡備綍閲囩敤 SQL 璇彞瀹炵幇鏁版嵁澶勭悊鍔熻兘銆傞鍏堬紝鍒ゆ柇鏄惁宸茬粡鏈変簨鍔″鐞嗙▼搴忓湪杩愯锛屽鏋滄湁锛屽皢鍏跺洖鍗(rollback)锛涘鏋滄病鏈夛紝鍒欏惎鍔ㄤ竴涓柊鐨勪簨鍔★紝涓烘暟鎹殑鏈缁堝鐞嗗仛鍑嗗銆傚叾娆★紝鏄缃 SQL 璇彞锛屽苟灏嗗叾鍐欏叆 TQuery 鏋勪欢涓傛渶鍚庯紝灏嗕簨鍔℃彁浜ゆ垨鍥炲嵎锛岃嚦姝ゅ畬鎴愪竴鏉¤褰曠殑鏁版嵁杈撳叆銆

銆銆涓嬮潰鏄互椤甸潰涓殑 TEdit 绫诲瀷缂栬緫妗嗗唴瀹逛綔涓烘暟鎹簮锛屽悜鏁版嵁搴撹緭鍏ヨ褰曠殑杩囩▼浠g爜锛

銆銆procedure DataInsert(const qName:TQuery;

銆銆銆銆銆銆銆銆銆銆銆銆szDBName:string;iNum:Integer;

銆銆銆銆銆銆銆銆銆銆銆銆iMark:array of Integer;eName:array of TEdit);

銆銆var

銆銆i : Integer;

銆銆szSQL : string;

銆銆begin

銆銆if DataModule1.DataBase1.InTransaction=true then

銆銆DataModule1.DataBase1.RollBack;

銆銆DataModule1.DataBase1.StartTransaction;

銆銆szSQL := 'INSERT INTO '+szDBName+' VALUES('

銆銆for i:=0 to iNum-1 do

銆銆銆begin

銆銆銆銆if iMark[i]=0 then

銆銆銆銆銆szSQL := szSQL+eName[i].Text {闈炲瓧绗︽柟寮弣

銆銆銆銆else

銆銆銆銆銆szSQL := szSQL+'"'+eName[i].Text+'"'; {瀛楃鏂瑰紡}

銆銆銆銆if i=iNum-1 then

銆銆銆銆銆szSQL := szSQL+')'

銆銆銆銆else

銆銆銆銆銆szSQL := szSQL+',';

銆銆銆銆end;

銆銆銆銆qName.Close; {鍏抽棴鏌ヨ}

銆銆銆銆qName.SQL.Clear; {娓匰QL鐗规у唴瀹箎

銆銆銆銆qName.SQL.ADD(szSQL); {娣诲姞SQL鍐呭}

銆銆銆銆szSQL := 'SELECT * FROM '+szDBName;

銆銆銆銆qName.SQL.ADD(szSQL);

銆銆銆銆qName.Open; {杩斿洖缁撴灉闆唥

銆銆銆銆DataModule1.DataBase1.Commit;

銆銆銆銆end;

浠ヤ笂杩囩▼鍖呭惈浜斾釜鍙傛暟锛屽疄鐜颁粠椤甸潰涓殑涓绯诲垪缂栬緫妗嗕腑璇诲彇鏁版嵁锛屽苟鍚戞寚瀹氭暟鎹〃杈撳叆鐨勫姛鑳姐傚叾涓紝鍙傛暟 qName 涓洪〉闈腑鎵浣跨敤鐨 TQuery 绫绘瀯浠剁殑鍚嶇О锛涘弬鏁 szDBName 鏄暟鎹〃鐨勫悕绉帮紱鍙傛暟eName 鏄 TEdit 绫诲瀷鐨勬暟缁勶紝鍒楀嚭浜嗛〉闈腑鍖呭惈鏁版嵁鐨勫悇缂栬緫妗嗗悕绉帮紱鍙傛暟 iNum 鏄暟鎹〃涓殑瀛楁涓暟锛屼篃鍗崇紪杈戞鐨勪釜鏁帮紱鍙傛暟 iMark 鏄竴涓暣鏁扮被鍨嬬殑鏁扮粍锛岃鍙傛暟琛ㄦ槑鐩稿簲瀛楁鏄互浣曠鏂瑰紡杈撳叆鐨勶紝濡傛灉鏄瓧绗︽柟寮忥紝闇瑕佸湪鏁版嵁鍓嶅悗涓ょ鍔犱笂寮曞彿銆傞渶瑕佹敞鎰忕殑鏄細鍦ㄨ皟鐢ㄦ湰杩囩▼涔嬪墠锛屽簲灏嗘暟鎹簱杩炴帴鎵撳紑锛

銆銆DataModule1.DataBase1.Connected := true;

銆銆杩囩▼璋冪敤瀹屾垚鍚庯紝灏嗘暟鎹簱杩炴帴鏂紑锛

銆銆ataModule1.DataBase1.Connected := false;

鍙﹀锛屽紑鍙戠綉缁滄暟鎹簱搴旂敤绋嬪簭鏃讹紝杩樺彲浠ヤ娇鐢ㄥ瓨鍌ㄨ繃绋嬶紝鍗筹細灏嗛鍏堢紪璇戣繃鐨 SQL 璇彞瀛樺偍鍦ㄦ湇鍔″櫒涓娿傚瓨鍌ㄨ繃绋嬫彁鍓嶈繍琛岋紝涓斾笉涓庣▼搴忎唬鐮佷竴鍚屽瓨鍌ㄥ拰缂栬瘧锛屽洜姝ゅ叾瀵瑰簲涓荤▼搴忎腑鐨勪唬鐮佺浉瀵圭畝娲侊紝杩愯閫熷害涔熻緝蹇係QL 璇彞鐨勯泦涓瓨鏀撅紝浣垮叾淇敼鏇村鏄撱

銆銆瑕佸垱寤哄悜鏁版嵁琛ㄤ腑杈撳叆鏁版嵁鐨勫瓨鍌ㄨ繃绋嬶紝浠g爜缂栧啓涓句緥濡備笅锛

銆銆CREATE PROC ProcTest1

銆銆@inttest smallint

銆銆,@strtest char(4) output

銆銆AS

銆銆INSERT INTO TEST_User.TRANS_TEST

銆銆VALUES(@inttest,@strtest)

銆銆SELECT @strtest,* FROM TEST_User.TRANS_TEST

浠ヤ笂浠g爜鍚戞暟鎹〃 TEST_User.TRANS_TEST 娣诲姞鏁版嵁锛岃鏁版嵁琛ㄥ寘鎷袱涓瓧娈碉細绗竴涓瓧娈典负 smallint 绫诲瀷鐨勬暟鎹紝鍙傛暟绫诲瀷瀹氫负 Input(鍦ㄥ瓨鍌ㄨ繃绋嬩腑鍙己鐪)锛涚浜屼釜瀛楁鏁版嵁涓洪暱搴︿负4 鐨勫瓧绗︾被鍨嬶紝鍙傛暟绫诲瀷涓 Output銆

銆銆鍏舵ā鍧楃▼搴忕殑缂栧啓涓 DataInsert 杩囩▼鐩镐技锛屽尯鍒富瑕佸湪浜庢ā鍧楃殑涓棿閮ㄥ垎锛屽搴旂殑涓昏浠g爜濡備笅锛

銆銆StoredProc1.Close;

銆銆{鍏抽棴瀛樺偍杩囩▼}

銆銆StoredProc1.Params .ParamType := ptInput;

銆銆{璁剧疆瀛樺偍杩囩▼鐨勫弬鏁扮被鍨媫

銆銆 StoredProc1.Params .AsInteger := 1;

銆銆{璁剧疆瀛樺偍杩囩▼涓弬鏁扮殑鏁版嵁}

銆銆StoredProc1.Params .ParamType := ptOutput;

銆銆toredProc1.Params .AsString := 'abcd';

銆銆StoredProc1.Open; {鎵撳紑瀛樺偍杩囩▼}

鍏朵腑锛孲toredProc1 鏄 TStoredProc 绫诲瀷鐨勬瀯浠跺悕绉帮紱Params 鏄瓨鍌ㄨ繃绋嬩腑鐨勭涓涓弬鏁帮紝瀵瑰簲瀛樺偍杩囩▼ ProcTest1 鍙互鐢≒aramByName('@inttest')浠f浛锛涘瓨鍌ㄨ繃绋嬬殑绗簩涓弬鏁颁笌鍏剁被浼笺

銆銆瀹為檯涓婏紝缂栧啓瀵圭綉缁滄暟鎹簱杩涜鍏朵粬鏁版嵁澶勭悊(濡傦細淇敼銆佸垹闄ゅ拰鏌ヨ绛)鐨勬ā鍧楋紝涓庢暟鎹殑杈撳叆妯″潡澶т綋鐩镐技锛岃繖閲屽氨涓嶅啀璧樿堪浜嗐

鎵撳嵃 | 鏀惰棌姝ら〉 |  鎺ㄨ崘缁欏ソ鍙 | 涓炬姤
涓婁竴绡 涓嬩竴绡
 

璇勫垎锛0

鍙戣〃璇勮
鏌ョ湅鍏ㄩ儴鍥炲銆愬凡鏈0浣嶇綉鍙嬪彂琛ㄤ簡鐪嬫硶銆