AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi dbExpress und TSQLStoredProc Probleme mit Parameterübergabe
Thema durchsuchen
Ansicht
Themen-Optionen

dbExpress und TSQLStoredProc Probleme mit Parameterübergabe

Ein Thema von cs.rumpelstilzchen · begonnen am 31. Mai 2005 · letzter Beitrag vom 3. Jun 2005
 
Benutzerbild von cs.rumpelstilzchen
cs.rumpelstilzchen

Registriert seit: 16. Sep 2004
Ort: NRW
72 Beiträge
 
Delphi XE4 Professional
 
#5

Re: dbExpress und TSQLStoredProc Probleme mit Parameterüberg

  Alt 2. Jun 2005, 09:46
Hallo Thorsten,
vielen Dank für die Hilfe zu später Stunde!

Dein Beispiel funktioniert bei mir nicht! Vielleicht mache ich noch was falsch!!?!
Hier der StoredProc-Code:
SQL-Code:
CREATE PROCEDURE TestProc @Input INT
AS

DECLARE @ausgabe1 INT, @ausgabe2 INT
SET @ausgabe1 = 101
SET @ausgabe2 = 102
SELECT @ausgabe1 AS Output1, @ausgabe2 AS Output2
GO
und der Delphi-Aufruf dazu:

Delphi-Quellcode:
with gMySqlServerObject.SQLStoredProc do
  begin
  try
    StoredProcName := 'TestProc';
    ParamByName('Input').AsInteger := 1; // <- hier tritt der Fehler auf!!!!
    Open;
    iResult := ExecProc;
    Output1 := FieldByName('Output1').AsInteger;
    Output2 := FieldByName('Output2').AsInteger;
    Close;

    ShowMessage('ExecProc = '+inttostr(iResult));

    ShowMessage('Output1 = '+inttostr(Output1));

    ShowMessage('Output2 = '+inttostr(Output2));
  finally
    Free;

  end; // with gMySqlServerObject.SQLStoredProc do
Ich erhalte die Fehlermeldung: 'Parameter 'Input' nicht gefunden'

Und jetzt der Hit: Lasse ich diese Zeile Weg bekomme ich beim Open folgende Fehlermeldung:
'Datenbank-Server-Fehler: SQL State: 42000, SQL Error Code: 201
Die TestProc-Prozedur erwartet den @Input-Parameter; dieser wurde nicht übergeben.'


Das ist doch stark, oder? Erst findet er ihn nicht, dann will er ihn haben!!!

Zu deinen Fragen: Ich benutze TSQLStoredProc und die Borland dbExpress-dll.


Ich hab in meiner Not mal ein neues Formular erstellt und das TSQLConnection-Object aus dem Designer (dbExpress) benutzt. Das geht gar nicht! Ich erhalte beim Connect folgende Fehlermeldung noch bevor das Login (LoginPrompt ist true!) erscheint:
Zugriffsverletzung bei Adresse 40C180DE in Modul 'dbexpress90.bpl'. Lesen von Adresse 00000000.

Details:
[40C180DE]{dbexpress90.bpl} SqlExpr.TSQLConnection.SQLError (Line 1730, "SqlExpr.pas" + 24) + $B
[40005F5B]{rtl90.bpl } System.@HandleAnyException (Line 9625, "system.pas" + 13) + $0
[7C913786]{ntdll.dll } RtlConvertUlongToLargeInteger + $41
[7C91EAF5]{ntdll.dll } KiUserExceptionDispatcher + $9
[40C1C12E]{dbexpress90.bpl} SqlExpr.TSQLConnection.Check (Line 2919, "SqlExpr.pas" + 1) + $B
[403BF2AD]{dbrtl90.bpl } DB.TCustomConnection.SetConnected (Line 2506, "DB.pas" + 8) + $4
[0033BA66]{designide90.bpl} DesignEditors.TEnumProperty.SetValue (Line 1332, "DesignEditors.pas" + 5) + $6
[00A3D630]{vclide90.bpl} IDEInspListBox.TInspListBox.SetPropValue (Line 1144, "ideinsplistbox.pas" + 40) + $24
[00A3EC00]{vclide90.bpl} IDEInspListBox.TInspListBox.ListAccept (Line 1635, "ideinsplistbox.pas" + 6) + $7
[00A36FC2]{vclide90.bpl} IDEListBtns.TListButton.CloseUp (Line 752, "IDEListBtns.pas" + 14) + $12
[0053CF02]{vcl90.bpl } Controls.TWinControl.WndProc (Line 6673, "Controls.pas" + 51) + $4
[4003EEC0]{rtl90.bpl } Classes.StdWndProc (Line 11456, "classes.pas" + 8) + $0
[77D18731]{user32.dll } GetDC + $6A
[77D18811]{user32.dll } GetDC + $14A
[77D189C8]{user32.dll } GetWindowLongW + $122
[77D18A0B]{user32.dll } DispatchMessageW + $A


Im gleichen Formular hab ich dann mal die dbGo-Objekte benutzt. Also TADOConnection und TADOStoredProc. Das geht ohne Probleme! Der Connect geht sofort und die Stored Procedures werden mir automatisch angezeigt. Ausführen klappt auch problemlos!

Bin ich zu doof, oder ist dbExpress Murks?

Hiiiiiilfeeeeeeeeee.............
Der weiß, daß er nichts weiß, wie alle anderen auch nichts wissen.
Nur weiß er, was die anderen und auch er selbst noch lernen müssen.
(Novalis 1772 - 1801)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz