Hallo,
- Delphi 6 Enterprise UP#2<br>
- MSSQL 2000<br>
- Oracle 9i 9.0.1<br>
- Datenzugriff via ADO
Ich habe in MSSQL eine Stored Procedure erstellt, die wie folgt aussieht:
<pre>
CREATE PROCEDURE AddTable1(
@aid int,
@atitle varchar(50)
AS
INSERT INTO Table1 (ID, Beschreibung)
VALUES (@aid, @atitle);
</pre>
Für Oracle habe die gleiche Procedure geschrieben und in ein Oracle-Package gepackt.
<pre>
PROCEDURE AddSP(
aid IN TInteger,
atitle IN TDescription) IS
BEGIN
INSERT INTO Table1
VALUES (aid, atitle);
END;
</pre>
Anmerkung: Die verwendeten Typen TInteger und TDescription wurden mit subtype innerhalb des Oracle-Packages erstellt.
Konfiguriere ich die UML-Datei, die dem ADO-Zugriff zugrunde liegt, für MSSQL, so läuft alles wunderbar. Wird die UML-Datei aber auf Oracle umgestellt, so ernte ich beim Aufruf der ADOCommand.Execute die Fehlermeldung <i>Unbekannter Fehler</i>. Folgender Code führt die Stored Procedure aus:
<pre>
with ADOCommand do begin
Parameters[1].Value := ...;
Parameters[2].Value := ...;
Execute;
end;
</pre>
In einem anderer Thread hier im Forum unter "StoredProcedure ausführen (Oracle)" war schon der Hinweis gegeben, die Parametertypen von BCD auf Float zu ändern. In meinem Fall sind alle Parameter vom korrekten Datentyp.
Gruß<br>
Stephan Schneider
- Delphi 6 Enterprise UP#2<br>
- MSSQL 2000<br>
- Oracle 9i 9.0.1<br>
- Datenzugriff via ADO
Ich habe in MSSQL eine Stored Procedure erstellt, die wie folgt aussieht:
<pre>
CREATE PROCEDURE AddTable1(
@aid int,
@atitle varchar(50)
AS
INSERT INTO Table1 (ID, Beschreibung)
VALUES (@aid, @atitle);
</pre>
Für Oracle habe die gleiche Procedure geschrieben und in ein Oracle-Package gepackt.
<pre>
PROCEDURE AddSP(
aid IN TInteger,
atitle IN TDescription) IS
BEGIN
INSERT INTO Table1
VALUES (aid, atitle);
END;
</pre>
Anmerkung: Die verwendeten Typen TInteger und TDescription wurden mit subtype innerhalb des Oracle-Packages erstellt.
Konfiguriere ich die UML-Datei, die dem ADO-Zugriff zugrunde liegt, für MSSQL, so läuft alles wunderbar. Wird die UML-Datei aber auf Oracle umgestellt, so ernte ich beim Aufruf der ADOCommand.Execute die Fehlermeldung <i>Unbekannter Fehler</i>. Folgender Code führt die Stored Procedure aus:
<pre>
with ADOCommand do begin
Parameters[1].Value := ...;
Parameters[2].Value := ...;
Execute;
end;
</pre>
In einem anderer Thread hier im Forum unter "StoredProcedure ausführen (Oracle)" war schon der Hinweis gegeben, die Parametertypen von BCD auf Float zu ändern. In meinem Fall sind alle Parameter vom korrekten Datentyp.
Gruß<br>
Stephan Schneider
Comment