熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

Delphi與SQL Server存儲過程編程詳解

2013-11-15 14:33:28  來源: SQL Server 

  前言
  
  經常有很多初學者問到在delphi中如何調用SQL Server的存儲過程?問題其實很好解決但問得多了也就不願答了下面我將用實例進行說明從在SQL Server中創建存儲過程到調用的完整實例
  
  首先打開sql server管理器在pubs數據庫中建一個測試表表名為test字段有idname和desc全部為字符型如果你不知道建表那麼打開sql查詢分析器貼上以下的代碼然後按執行就會自動生成test表
  use pubs
  if exists (select * from dbosysobjects where id = object_id(N[dbo][test]) and OBJECTPROPERTY(id NIsUserTable) = )
  drop table [dbo][test]
  GO
  
  CREATE TABLE [dbo][test] (
  [id] [char] () COLLATE Chinese_PRC_CI_AS NOT NULL
  [name] [char] () COLLATE Chinese_PRC_CI_AS NULL
  [descrip] [char] () COLLATE Chinese_PRC_CI_AS NULL
  ) ON [PRIMARY]
  GO
  
  然後我們來創建一個存儲過程其功能為在test中插入一條新記錄創建存儲過程的代碼如下同樣的你也可以復制到查詢分析器裡直接執行就可以:
  CREATE PROCEDURE myInsert
  @id char()
  @name varchar()
  @descrip varchar()
  
  AS
  begin
  
  insert into test (idnamedescrip) values (@id@name@descrip)
  
  if @@rowcount=
  begin
  raiserror(error)
  rollback transaction
  end
  end
  GO
  
  接下來新建一個工程文件在form上放置如下控件並設置屬性(括號內):
  一個ADOConnection: TADOConnection;
  (LoginPrompt:=false;
  connectionstring:=Provider=SQLOLEDB;Persist Security Info=True;User ID=sa;Initial Catalog=pubs;Data Source=(local);)
  
  一個ADOStoredProc: TADOStoredProc;屬性為:
  (connection:=adoconnection;
  procedurename:=myinsert;//上面我們創建的那個)
  
  一個ADOTable: TADOTable;屬性為:
  (connection:=adoconnection;
  tablename:=test;  //上面我們創建的那個)
  
  一個Datasource屬性為:
  (dataset:=Tadotable;)
  
  一個 DBGrid: TDBGrid;屬性為
  (datasource:=datasource;)
  
  一個Button在其Onclick中寫到:
  with adoStoredproc do
  begin
  ParametersParamByName(@id)Value := ;
  parametersParamByName(@name)Value := myname;
  parametersParamByName(@descrip)Value :=nosubject;
  ExecProc;
  end;
  AdotableClose;
  adotableOpen;
From:http://tw.wingwit.com/Article/program/SQLServer/201311/21984.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.