delphi和sqlserver交互
{利用adoquery调用sql server存储过程} procedure TForm1.Label1Click(Sender: TObject); begin adoquery1.Close; adoquery1.SQL.Clear ; adoquery1.SQL.Add('exec proc_stu :a output,:b,:c'); adoquery1.Parameters[1].Value :=strtoint(edit1.Text); adoquery1.Parameters[2].Value :=strtoint(edit2.Text); adoquery1.Parameters[0].DataType:=ftsmallint; adoquery1.Parameters[0].Direction:=pdoutput; adoquery1.Prepared:=true; adoquery1.Open ; edit3.Text:= inttostr(adoquery1.Parameters[0].Value ); end; {利用adostoreproc调用sql server标量函数} procedure TForm1.Label2Click(Sender: TObject); begin adostoredproc1.ProcedureName :='rectanglearea'; adostoredproc1.close; adostoredproc1.Parameters.Refresh;//Clear会导致数组溢出异常。 adostoredproc1.Parameters.CreateParameter('return_value',ftfloat,pdreturnvalue,20,null);//函数返回值 adostoredproc1.Parameters.CreateParameter('a',ftfloat,pdinput,10,null); adostoredproc1.Parameters.CreateParameter('b',ftfloat,pdinput,10,null); adostoredproc1.Parameters[1].Value :=strtofloat(edit1.Text); adostoredproc1.Parameters[2].Value :=strtofloat(edit2.Text); adostoredproc1.Prepared :=true; adostoredproc1.ExecProc ; edit3.Text:= floattostr(adostoredproc1.Parameters[0].Value ); end; {利用adostoreproc调用sql server存储过程} procedure TForm1.Button1Click(Sender: TObject); begin adostoredproc1.ProcedureName :='proc_stu'; adostoredproc1.close; adostoredproc1.Parameters.Clear ; //adostoredproc1.Parameters.CreateParameter('return_value',ftfloat,pdreturnvalue,20,null); adostoredproc1.Parameters.CreateParameter('a',ftinteger,pdoutput,10,null);//参数名不需要与sql中定义的参数名相同 adostoredproc1.Parameters.CreateParameter('b',ftinteger,pdinput,10,null); adostoredproc1.Parameters.CreateParameter('c',ftinteger,pdinput,10,null); adostoredproc1.Parameters[1].Value :=strtofloat(edit1.Text); adostoredproc1.Parameters[2].Value :=strtofloat(edit2.Text); adostoredproc1.Prepared :=true; adostoredproc1.Open ;//有与dbgrid相关联,应用open而不是execproc. edit3.Text:= floattostr(adostoredproc1.Parameters[0].Value ); end; {利用adoquery调用sql server表值函数} procedure TForm1.Button2Click(Sender: TObject); begin adoquery1.Close; adoquery1.SQL.Clear ; adoquery1.SQL.Add('select * from dbo.tt(:a)'); adoquery1.Parameters[0].Value :=edit1.Text ; adoquery1.Prepared:=true; adoquery1.Open ; //edit3.Text:= inttostr(adoquery1.Parameters[0].Value ); end;