Einzelnen Beitrag anzeigen

Elvis

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

Re: PL SQL: Zerlegen eines BLOBs

  Alt 27. Apr 2008, 19:41
Zitat von sirius:
*piep*
Ich wollte dir erst antworten, wenn ich es in der freien (ersten) Version von AnyDAC getestet hatte.
Mit ADO bist du ziemlich am ... Rektum ... Features angeht, die jenseits von dem sind, was MSSQL kann.
Du kannst damit keine Objekte übergeben und auch keine Arrays von einfachen Typen.

Mit einer Bibliothek, die dir Arrayparameter ermöglicht, könntest du direkt eine Liste übergeben und in einem Postback in die DB schieben.

Du solltest dir erstmal die Liste anlegen:create or replace type DeinSchema.TIntegeList is table of Integer; Der nötige Code um solch eine Liste möglichst effizient in die DB zu schieben wäre bulk DML.
In Oracle wird das über "forall" gelöst:
Delphi-Quellcode:
begin
  forall i in :deineListe.First .. :deineListe.Last
    INSERT INTO DeinSchema.DeineTabelle
      (DeineSpalte)
    VALUES
      (:deineListe(i));
end;
Auf die Art sparst du dir die ständigen Context switches zwischen SQL und PL/SQL Engine für jeden Datensatz. (Die beiden sind in Ora STRIKT getrennt, mit unterschiedlichen Typen und Features).

Wie gesagt, ich habe es nicht mit AnyDAC1 getestet, kann dir dazu also nix sagen.
Wenn Delphi dir nicht wichtig ist, kann ich dir Beispiele für .Net aus den Fingern saugen.
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