Einzelnen Beitrag anzeigen

Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Firebird 1.5 oder 2.0 für neues Projekt?

  Alt 11. Sep 2006, 18:52
Offtopic: Für dich, als .Net-Nutzer, gibt es heute abend, spätestens morgen Abend einen weiteren kleinen Vorteil von FB gegenüber anderen DB-Managementsystemen.

Kleiner Spoiler:
Eine SProc aus der Employee.fdb:
SQL-Code:
create procedure GET_EMP_PROJ(emp_no smallint)
returns (proj_id char(5))
as
begin
  for SELECT proj_id
      FROM employee_project
      WHERE emp_no = :emp_no
      INTO :proj_id do
    suspend;
end
Die Entsprechung in .Net (hier Chrome) wäre:
Delphi-Quellcode:
type
  [StoredProc('GET_EMP_PROJ')]
  GetEmployeeProjectIdSProc = delegate(employeeId : SmallInt) : String;
Und so würde man es einfach ausführen
Delphi-Quellcode:
using connection := new FbConnection(someConnectionString) do
using factory := new StoredProcFactory(connection) do
begin
  // .Net 1.1 compliant overload
  //var getEmployeeProjectId := factory.GetStoredProc(typeof(GetEmployeeProjectIdSProc)) as GetEmployeeProjectIdSProc;

  // generic overload
  var getEmployeeProjectId := factory.GetStoredProc<GetEmployeeProjectIdSProc>(CommandReusage.FireAndForget);

  connection.Open();
  with projectId := getEmployeeProjectId(113) do
    Console.WriteLine('ProjectId is {0}', projectId);
end;
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat