Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [GELÖST] Zeichenkettenverknüpfung (https://www.delphipraxis.net/124034-%5Bgeloest%5D-zeichenkettenverknuepfung.html)

ToFaceTeKilla 13. Nov 2008 12:12

Datenbank: MS SQL 2005 • Zugriff über: ADO

[GELÖST] Zeichenkettenverknüpfung
 
Hi,

ich bin grad n bisschen am Verzweifeln mit der Stringkonkatenation in MS SQl. Wie in der Hilfe, in der DP und im Inet steht, hab ich die Strings mit einem "+" verknüpft. Jetzt Krieg ich aber immer die Fehlermeldung
"Zeile 15: Falsche Syntax in der Nähe von '+'."


SQL-Code:
create procedure dbo.cf_Test
@Path ntext,
@JobName varchar(80),
@StepName varchar(80),
@Subsystem varchar(80)
as

   execute msdb..sp_add_job
      @job_name = @JobName

   execute msdb..sp_add_jobstep
      @job_name = @JobName,
      @step_name = @StepName,
      @subsystem = @Subsystem,
      @command = '/FILE "'+@Path+'" /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING E'
                      //  |_hier ist der Fehler
go
Ich hab @Path auch schon als varchar probiert, geht auch nicht.
Kann mir bitte wer sagen, wo mein Fehler liegt?

Thx

nahpets 13. Nov 2008 12:15

Re: Zeichenkettenverknüpfung
 
Hallo,

entweder da sind ein paar " zuviel oder ein paar + zuwenig:

SQL-Code:
    @command = '/FILE "'+@Path+'" /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING E'
so
SQL-Code:
    @command = '/FILE "'+@Path+'" /MAXCONCURRENT " + -1 + " /CHECKPOINTING OFF /REPORTING E'
oder so
SQL-Code:
    @command = '/FILE "'+@Path+'" /MAXCONCURRENT -1  /CHECKPOINTING OFF /REPORTING E'

ToFaceTeKilla 13. Nov 2008 12:24

Re: Zeichenkettenverknüpfung
 
Wertet MSSQL doppelte Anführungszeichen denn aus?

Weil, ... "-1" ... ist Teil des Strings. Der ganze Parameter @command wird von SQL an die WinCmd übergeben, deshalb ist @Path und die -1 in Anführungszeichen.

Hm mal probieren...

Edit:
Nee, es kann doch gar nich daran liegen, er meckert ja an dem + vor @Path.
(Wenn ich den String auf drei Zeilen aufteile, meckert er immernoch an Zeile 15, wo dann nur noch der Teil bis zum ersten + steht.)

ToFaceTeKilla 13. Nov 2008 12:52

Re: Zeichenkettenverknüpfung
 
Alles klar, hab den Fehler gefunden:
SQL-Code:
create procedure dbo.cf_Test
@Path varchar(50),
@JobName varchar(80),
@StepName varchar(80),
@Subsystem varchar(80)
as
declare @com varchar(100)
   execute msdb..sp_add_job
      @job_name = @JobName

set @com = '/FILE "'+@Path+'" /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING E'
   execute msdb..sp_add_jobstep
      @job_name = @JobName,
      @step_name = @StepName,
      @subsystem = @Subsystem,
      @command = @com
So muss es lauten. Anscheinend sind zusammengesetzte Strings im Prozeduraufruf nicht zulässig :coder2:

Aber Thx4Help

nahpets 13. Nov 2008 12:58

Re: [GELÖST] Zeichenkettenverknüpfung
 
Hallo,

jo, sieht so aus, bín da auch gerade zu dem Schluss gekommen :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:05 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