Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   C# Firebird 1.5 oder 2.0 für neues Projekt? (https://www.delphipraxis.net/76834-firebird-1-5-oder-2-0-fuer-neues-projekt.html)

Jürgen Thomas 10. Sep 2006 21:08

Datenbank: Firebird • Version: ??? • Zugriff über: FirebirdNETProvider

Firebird 1.5 oder 2.0 für neues Projekt?
 
Hallo,

wenn ich mich bei der Entwicklung eines neuen Projekts unter NET 2.0 (siehe ggf. meine anderen Diskussionen) für Firebird entscheide:
  • Sollte ich Version 1.5 nehmen, um auf der sicheren Seite zu sein?
  • Oder kann ich Version 2.0 RC verwenden?
Version 2 bietet einige schöne Sachen, die ich gerne von Anfang an nutzen würde.

Achtung: Zurzeit handelt es sich ausschließlich um die Entwicklung; der Produktion werden die DBs frühestens in etwa einem halben Jahr dienen. Eigentlich müsste die Version 2.0 doch schon stabil genug sein, oder?

Jürgen

mkinzler 10. Sep 2006 21:11

Re: Firebird 1.5 oder 2.0 für neues Projekt?
 
Da FB2 sich schon seit längerer Zeit in der Stabilisierung befindet, würde i ch dir raten, gleich für diese Version zu entwickeln. (Momentan RC4 ; geplant Ursprünglich 2 nun 5 RCs)

Hansa 10. Sep 2006 23:28

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

Zitat von mkinzler
Da FB2 sich schon seit längerer Zeit in der Stabilisierung befindet

Nana, das hört sich nach momentaner Instabilität an und dem ist nicht so. Was soll denn mit FB2 überhaupt benutzt werden, was es in FB 1.5 vorher nicht gab ? Ist die Abwärtskompatibilität egal ?

Jürgen Thomas 11. Sep 2006 06:28

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

Zitat von Hansa
Was soll denn mit FB2 überhaupt benutzt werden, was es in FB 1.5 vorher nicht gab ?
Ist die Abwärtskompatibilität egal ?

1. benutzerdefinierte Kontextvariable
2. ja: neues Projekt

Jürgen

Lemmy 11. Sep 2006 06:48

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

ganz klar FB 2.0.

Lemmy

dataspider 11. Sep 2006 07:05

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

also meiner Meinung nach hat FB2 entscheidende Vorteile.
Unterstützung von Ausdrücken im Index wie upper etc., String - Funktionen wie trim, lower, char_length ... und vor Allem auch die Möglichkeit, dass ein User ohne SysDba - Rechte sein Passwort ändern kann.
Es sind schon einige Dinge, auf die ich sehnsüchtig warte :)

Cu, Frank

Elvis 11. Sep 2006 16:46

Re: Firebird 1.5 oder 2.0 für neues Projekt?
 
FB2 hat eine returning clause, die endlich krampflosen Umgang mit autoinkrementierten PKs ermöglicht:
SQL-Code:
INSERT INTO DeineTabelle
(
  Field1,
  Field2
)
VALUES
(
  :Field1,
  :Field2
)
RETURNING ID
INTO    :ID
Direkt aus dem Insert bekommt man den PK, der in einem Trigger besetzt wurde. Dieses fummelige Generatorgefriemel erübrigt sich. :)
(Außerdem ist die Syntax Oracle-kompatibel ;) )
Der Optimizer wurde auch etwas besser und, wie mkinzler schon sagte, frei definierbare, sessionabhängige, globale Variablen.

Elvis 11. Sep 2006 18:52

Re: Firebird 1.5 oder 2.0 für neues Projekt?
 
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. :zwinker:

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;

Jürgen Thomas 12. Sep 2006 07:51

Re: Firebird 1.5 oder 2.0 für neues Projekt?
 
Danke an alle,

es spricht also in der Tat alles dafür, sofort mit FB 2 zu beginnen. So soll es sein! Jürgen


@Mod
Ende der Diskussion

Elvis 12. Sep 2006 08:17

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

Zitat von Jürgen Thomas
@Mod
Ende der Diskussion

Warum wilst du immer deine Threads beenden?
Manch interessanter Thread hat begonnen nachdem das eigentliche Thema schon durchgekaut war. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz