AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Fehler bei ADO-Parameter Typ ftLargeint
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler bei ADO-Parameter Typ ftLargeint

Ein Thema von Leuselator · begonnen am 14. Dez 2004 · letzter Beitrag vom 14. Dez 2004
Antwort Antwort
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#1

Fehler bei ADO-Parameter Typ ftLargeint

  Alt 14. Dez 2004, 11:34
Hallo Gemeinde.

Untersatz: MSSQL, ADO, D7, TADO, TBetterADO

Ich versuche ein bigint-Feld (64bit) zu füllen:
SQL-Code:
CREATE PROCEDURE SP_DUMMY(@PARA bigint)
AS
BEGIN
  INSERT INTO TABELLE
            ( BigIntFeld)
       VALUES
            (@PARA)
END
in Delphi:
Delphi-Quellcode:
var
  AP : TADOStoredProc;
  WERT : int64;
begin
  // AP.Create, Connection setzen BlaBla
  // dann:
  WERT := IrgendEin64BitInteger;
  AP.ProcedureName := 'SP_DUMMY';
  AP.Parameters.Clear;
  // und hier knallt es:
  AP.Parameters.CreateParameter('PARA',ftLargeint,pdInput, 0,WERT);
...

// und zwar in Unit ADODB:
function TParameters.CreateParameter(const Name: WideString;
  DataType: TDataType; Direction: TParameterDirection; Size: Integer;
  Value: OleVariant): TParameter;
begin
  Result := AddParameter;
  Result.FParameter := Create_Parameter(Name, DataType, Direction, Size);
  { Don't try to assign value when it is an EmptyParam (used when optional) }
  if not ((TVarData(Value).VType = varError) and
    (TVarData(EmptyParam).VError = $80020004)) then
    Result.FParameter.Value := Value; // <--- genau da macht es Peng ?!
end;
stehe echt auf dem Schlauch - irgendwie haut es die ganze Schose immer wieder aus der Kurve mit ftLargeInt - habe auch TBetterADODataSet versucht - Problem bleibt.

Ehm - Hilfe?
Gruß
[Edit]ScreenShot angehangen[/Edit]
Miniaturansicht angehängter Grafiken
biginterror.jpg  
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#2

Re: Fehler bei ADO-Parameter Typ ftLargeint

  Alt 14. Dez 2004, 12:17
Sehr merkwürdig...
Das scheint zu funktionieren:
Delphi-Quellcode:
    AP.Parameters.CreateParameter('PARA',ftLargeint,pdInput, 0,0);
    AP.Parameters.FindParam('PARA').Value := WERT;
¿?
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Fehler bei ADO-Parameter Typ ftLargeint

  Alt 14. Dez 2004, 12:31
Man braucht bei Stored Proc die Parameter nicht selbst erzeugen, sondern kann sie sich erzeugen lassen:
Delphi-Quellcode:
  AP.ProcedureName := 'SP_DUMMY';
  AP.Parameters.Refresh; // <<<
  AP.Paramters.ParamValues['PARA'] := 1234567890;
  AP.Execute;
Im Gegensatz zu komplizierten SQL-Anweisungen, funktioniert Parameters.Refresh bei Stored Procs ohne Fehler.
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:31 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