有关procedure 的问题

jeptom 2003-11-10 09:22:10
创建一个删除学生的procedure,输入参数为学生的学号,现在想在完成
时输出“XX have dropped”的消息。如何实现???

create proc drop_student
(@parameter int,
@message char(30) output)
as
delete from student
where sno=@parameter;
delete from cs
where sno=@parameter
delete from other
where sno=@parameter




...全文
28 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
gmlxf 2003-11-10
  • 打赏
  • 举报
回复
print @message
pengdali 2003-11-10
  • 打赏
  • 举报
回复
create proc drop_student
(@parameter int,
@message char(30) output)
as
delete from student where sno=@parameter;
delete from cs where sno=@parameter
delete from other where sno=@parameter
set @message=cast(@parameter as varchar(10))+' have dropped'
go
//文件操作部分起 //拷贝一个文件,封装CopyFile procedure FileCopyFile(const sSrcFile, sDstFile: string); //给定路径复制文件到同一目录下 bRecursive:true所有 procedure FileCopyDirectory(sDir, tDir: string; bRecursive: Boolean);overload; //给定路径原样复制文件 ,自编 procedure FileCopyDirectory(sDir, tDir: string);overload; //给定路径原样复制文件 ,用WinAPI ,若原目录下有相同文件则再生成一个 procedure FileCopyDirectory(sDir, tDir:string;AHandle:Thandle);overload; //移动文件夹 procedure FileMoveDirectory(sDir, tDir:string;AHandle:Thandle); //删除给定路径及以下的所有路径和文件 procedure FileDeleteDirectory(sDir: string);overload; //删除给定路径及以下的所有路径和文件 用WinApi procedure FileDeleteDirectory(AHandle: THandle;const ADirName: string);overload; //删除给定路径及以下的所有路径和文件 到回收站 procedure FileDeleteDirectoryToCycle(AHandle: THandle;const ADirName: string); //取得指定文件的大小 function FileGetFileSize(const Filename: string): DWORD; //在Path下取得唯一FilenameX文件 function FileGetUniqueFileName(const Path: string; Filename: string): string; //取得临时文件 function FileGetTemporaryFileName: string; //取得系统路径 function PathGetSystemPath: string; //取得Windows路径 function PathGetWindowsPath: string; //给定文件名取得在系统目录下的路径,复制时用 function PathSystemDirFile(const Filename: string): string; //给定文件名取得在Windows目录下的路径,复制时用 function PathWindowsDirFile(const Filename: string): string; //给定文件名取得在系统盘下的路径,复制时用 function PathSystemDriveFile(const Filename: string): string; //路径最后有'/'则去'/' function PathWithoutSlash(const Path: string): string; //路径最后没有'/'则加'/' function PathWithSlash(const Path: string): string; //取得两路径的不同部分,条件是前半部分相同 function PathRelativePath(BaseDir, FilePath: string): string; //取得去掉属性的路径,文件名也作为DIR function PathExtractFileNameNoExt(Filename: string): string; //判断两路径是否相等 function PathComparePath(const Path1, Path2: string): Boolean; //取得给定路径的父路径 function PathParentDirectory(Path: string): string; //分割路径,Result=根(如d:)sPath = 除根外的其他部分 function PathGetRootDir(var sPath: string): string; //取得路径最后部分和其他部分 如d:\aa\aa result:=aa sPath:=d:\aa\ function PathGetLeafDir(var sPath: string): string; //取得当前应用程序的路径 function PathExeDir(FileName: string = ''): string; //文件操作部分止 //系统处理起 //提示窗口 procedure MsgBox(const Msg: string); //错误显示窗口 procedure MsgErrBox(const Msg: string); //询问窗口 带'是','否'按钮 function MsgYesNoBox(const Msg: string): Boolean; //询问窗口 带'是','否,'取消'按钮//返回值smbYes,smbNo,smbCancel function MsgYesNoCancelBox(const Msg: string): Integer; //使鼠标变忙和恢复正常 procedure DoBusy(Busy: Boolean); //显示错误信息 procedure ShowLastError(const Msg: string = 'API Error'); //发出错误信息 procedure RaiseLastError(const Msg: string = 'API Error'); //释放Strings连接的相关资源 procedure FreeStringsObjects(SL: TStrings); //系统处理止 //时间处理起 //整数到时间 function TimeT_To_DateTime(TimeT: Longint): TDateTime; //转化为秒 function TimeToSecond(const H, M, S: Integer): Integer; //秒转化 procedure TimeSecondToTime(const secs: Integer; var H, M, S: Word); //秒转化 function TimeSecondToTimeStr(secs: Integer): string; //时间处理止 //控件处理起 //设置控件是否能使用 procedure ConEnableControl(AControl: TControl; Enable: Boolean); //设置控件是否能使用,包子控件 procedure ConEnableChildControls(AControl: TControl; Enable: Boolean); procedure ConEnableClassControl(AControl: TControl; Enable: Boolean; ControlClass: TControlClass); procedure ConFree(aCon: TWinControl);//释放aCon上的控件 //从文件本中导入,类似LoadfromFile procedure ConLoadTreeViewFromTextFile(Nodes: TTreeNodes; Filename: string); //存为文本,类似SaveToFile procedure ConSaveTreeViewToTextFile(Nodes: TTreeNodes; Filename: string); //在控件上写文本 procedure ConWriteText(aContr: TControl;sText: string); //控件处理止 //字符串处理起 //取以Delimiters分隔的字符串 bTrail如果为True则把第index个后的也取出来 function StrGetToken(const S: string; index: Integer; bTrail: Boolean = False; Delimiters: TSysCharSet = DEFAULT_DELIMITERS): string; //取以Delimiters分隔的字符串的个数 function StrCountWords(S: string; Delimiters: TSysCharSet = DEFAULT_DELIMITERS): Integer; //用NewToken替换S中所有Token bCaseSensitive:=true大小写敏感 function StrReplaceString(var S: string; const Token, NewToken: string; bCaseSensitive: Boolean): Boolean; //从第Index个起以Substr替换Count个字符 procedure StrSimple_ReplaceString(var S: string; const Substr: string; index, Count: Integer); //去掉S中的回车返行符 procedure StrTruncateCRLF(var S: string); //判定S是否以回车返行符结束 function StrIsContainingCRLF(const S: string): Boolean; //把SL中的各项数据转化为以Delimiter分隔的Str function StrCompositeStrings(SL: TStrings; const Delimiter: string): string; //封装TStrings的LoadFromFile function StrSafeLoadStrings(SL: TStrings; const Filename: string): Boolean; //封装TStrings的SaveToFile procedure StrSafeSaveStrings(SL: TStrings; const Filename: string); //字符串处理止 //字体处理起 procedure StringToFont(sFont: string; Font: TFont; bIncludeColor: Boolean = True); function FontToString(Font: TFont; bIncludeColor: Boolean = True): string; //字体处理止 //网络起 //判定是否在线 function NetJudgeOnline:boolean; //得到本机的局域网Ip地址 Function NetGetLocalIp(var LocalIp:string): Boolean; //通过Ip返回机器名 Function NetGetNameByIPAddr(IPAddr: string; var MacName: string): Boolean ; //获取网络中SQLServer列表 Function NetGetSQLServerList(var List: Tstringlist): Boolean; //获取网络中的所有网络类型 Function NetGetNetList(var List: Tstringlist): Boolean; //获取网络中的工作组 Function NetGetGroupList(var List: TStringList): Boolean; //获取工作组中所有计算机 Function NetGetUsers(GroupName: string; var List: TStringList): Boolean; //获取网络中的资源 Function NetGetUserResource(IpAddr: string; var List: TStringList): Boolean; //映射网络驱动器 Function NetAddConnection(NetPath: Pchar; PassWord: Pchar;LocalPath: Pchar): Boolean; //检测网络状态 Function NetCheckNet(IpAddr:string): Boolean; //检测机器是否登入网络 Function NetCheckMacAttachNet: Boolean; //判断Ip协议有没有安装 这个函数有问题 Function NetIsIPInstalled : boolean; //检测机器是否上网 Function NetInternetConnected: Boolean; //网络止 //窗口起 function FormCreateProcessFrm(MsgTitle: string):TForm; //窗口止 //EMail起 function CheckMailAddress(Text: string): boolean; //EMail止
随便说说最近项目中的三层架构吧。讲点实际的东西。我最讨厌空讲道理。网上讲道理的太多了,不喜欢举例子。 大多数文章中都或多或少的讲到了三层架构。表示层,业务层,数据层。又把业务层再细分,分为外观服务层,主业务服务,及数据库库服务层。 今天主要讨论一下业务层吧。举个最简单的例子。客户端获取数据。 业务层要与表示层尽量解藕, 我的方法是:首先我们在中间层TLB_中定义一个接口 IBusinessService, 定义一个方法。getvoList,我要得到一个VO的列表, VO即ValueObject, 例如:TValueObject= class(TPersistent) private b_insertFlag :Boolean; b_updateFlag :Boolean; b_deleteFlag :Boolean; d_rowVersion :double; procedure setInsertFlag(pInsertFlag :Boolean); function getInsertFlag: Boolean; procedure setUpdateFlag(pUpdateFlag :Boolean); function getUpdateFlag: Boolean; procedure setDeleteFlag(pDeleteFlag :Boolean); function getDeleteFlag: Boolean; procedure setRowVersion(pRowVersion :double); function getRowVersion:double; protected function GetOLEData: OleVariant; virtual; procedure SetOLEData(const Value: OleVariant); virtual; published property bInsertFlag: Boolean read getInsertFlag write setInsertFlag; property bUpdateFlag: Boolean read getUpdateFlag write setUpdateFlag; property bDeleteFlag: Boolean read getDeleteFlag write setDeleteFlag; property dRowVersion: double read getRowVersion write setRowVersion; property POLEData:OleVariant read GetOLEData write SetOLEData; end;TUserVO = class(TValueObject) private id: string; name: string; password: string; 。。。。。。。。。。 VO的列表:TValueObjectList = Class(TObjectList) private ValueObject: TValueObject; ClassName: TClass; procedure setClassName(pTmpClsName :TClass); function getClassName: TClass; procedure setValueObject(pTmpVO :TValueObject); function getValueObject: TValueObject; protected function GetOLEData: OleVariant; virtual; procedure SetOLEData(const Value: OleVariant); virtual; published function AddItem(index: integer; AObject: TObject ):Integer; virtual; function GetItem(index, itemid: integer ): TObject; virtual; function CountItem:Integer; virtual; public constructor Create; virtual; destructor Destroy; override; procedure AfterConstruction; override; property PClassName: TClass read getClassName write setClassName; property POLEData: Ole

34,606

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧