AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Text-Parameterübergabe an Stored Procedure mit ADO
Thema durchsuchen
Ansicht
Themen-Optionen

Text-Parameterübergabe an Stored Procedure mit ADO

Ein Thema von Leuselator · begonnen am 16. Nov 2003 · letzter Beitrag vom 16. Nov 2003
Antwort Antwort
Benutzerbild von Leuselator
Leuselator

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

Text-Parameterübergabe an Stored Procedure mit ADO

  Alt 16. Nov 2003, 14:42
Moin Gemeinde!

Untersatz: MSSQL-2000-SP3,MDAC2.8,Delphi5 Ent.,Win2k
Muß für mein aktuelles Projekt mit ADO arbeiten und treffe auf Probleme mit der Übergabe von Textparametern. Aber vielleicht hab ich ja mal wieder Tomaten auf den Augen:
SQL-Code:
create table Dummy (
idDummy int identity(1,1) not null,
T_Beschreibung text null)
GO
create procedure SP_Dummy (@T_Beschreibung text)
as
begin
  insert into Dummy
  (T_Beschreibung) values (@T_Beschreibung)
end
GO
Mit BDE (TQuery) konnte ich bisher diesen Code ausführen:
Delphi-Quellcode:
//irgendwo gibt es z.B. ein TMemo: Memo1
procedure PutDataIn;
var qryTemp : TQuery;
begin
  qryTemp := TQuery.Create(nil);
  try
    qryTemp.SQL.Add('Execute SP_Dummy :MeinText');
    qryTemp.Prepare;
    qryTemp.ParamByName('MeinText').AsString := Memo1.Lines.Text;
    qryTemp.ExecSql;
  finally
    qryTemp.Free;
  end;
end;
Mit diesem Ado-Pendent gibt es Stress, sobald der Text Hochkommas enthält:
Delphi-Quellcode:
procedure PutDataIn;
var MyStream : TMemoryStream;
    aqryTemp : TAdoQuery;
    DummyString : String;
    DummyPtr : Pointer;
begin
  aqryTemp := TADOQuery.Create(nil);
  MyStream := TMemoryStream.Create;
  try
    aqryTemp.Connection := IrgendeineAdoConnection;
    aqryTemp.SQL.Add('execute SP_Dummy :MeinText');
    aqryTemp.Parameters.ParamByName('MeinText').DataType := ftMemo;
    aqryTemp.Prepare;

    DummyString := Memo1.Lines.Text;
    DummyPtr := @DummyString;
    MyStream.Write(DummyPtr,Length(DummyString));
    aqryTemp.Parameters.ParamByName('MeinText').LoadFromStream(MyStream,ftMemo);
    aqryTemp.ExecSQL;
  finally
    MyStream.Free;
    TempQry.Free;
  end;
end;
funktioniert ebensowenig wie:
Delphi-Quellcode:
procedure PutDataIn;
var aqryTemp : TAdoQuery;
begin
  aqryTemp := TADOQuery.Create(nil);
  try
    aqryTemp.Connection := IrgendeineAdoConnection;
    aqryTemp.SQL.Add('execute SP_Dummy :MeinText');
    aqryTemp.Parameters.ParamByName('MeinText').DataType := ftMemo;
    aqryTemp.Prepare;
    aqryTemp.Parameters.ParamByName('MeinText').Value := Memo1.Lines.Text;
    aqryTemp.ExecSQL;
  finally
    TempQry.Free;
  end;
end;
sobald der das Memo Hochkommatas (') enthält, kommt Müll raus, da nun ADO/MSSQL einen zusätzlichen Parameter übergibt (der erste ist ja abgeschlossen .
Jemand 'ne Idee?
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 r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#2

Re: Text-Parameterübergabe an Stored Procedure mit ADO

  Alt 16. Nov 2003, 14:47
Hallo Leuselator,

und warum verwendest Du nicht TADOStoredProc?
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

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

Re: Text-Parameterübergabe an Stored Procedure mit ADO

  Alt 16. Nov 2003, 14:50
Gewohnheit - hatte bisher noch keinen Vorteil in der Verwendung von TStoredProc gesehen.

Ist das bei TADOStordeProc nun anders? - Teste bereits...
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
 
#4

Re: Text-Parameterübergabe an Stored Procedure mit ADO

  Alt 16. Nov 2003, 15:59
Hmm - funktioniert.

Allerdings ist es wenn man das dynamisch macht ziemlich viel Tipperei.
Wenn also jemand hier 'ne Idee wie das mit Ado-Query funktioniert - immer her damit.

Danke Rainer!
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
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 23:40 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