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.