escaping in MSSQL script?

C

Chris McMahon

Hi...
Can anyone suggest the proper way to escape the backslashes in the
directory name in the following script?


d = c.run("ALTER DATABASE fooDB MODIFY FILE (NAME = foo_log, FILENAME =
'C:\\Program Files\Microsoft SQL
Server\MSSQL\fooPlus\fooPlus_log.LDF'")

The obvious solutions yield either "Incorrect syntax..." or "Invalid
escape character syntax" messages.

Thanks...
-CHris
 
D

David Vallner

Chris said:
Hi...
Can anyone suggest the proper way to escape the backslashes in the
directory name in the following script?


d = c.run("ALTER DATABASE fooDB MODIFY FILE (NAME = foo_log, FILENAME =
'C:\\Program Files\Microsoft SQL
Server\MSSQL\fooPlus\fooPlus_log.LDF'")

The obvious solutions yield either "Incorrect syntax..." or "Invalid
escape character syntax" messages.

Thanks...
-CHris
Four backslashes should work. Wildly guessing only.
 
C

Chris McMahon

Good guess, but

'C:\\\\Program Files\\Microsoft
SQLServer\MSSQL\\fooPlus\\fooPlus_log.LDF'

yields

Incorrect syntax near 'C:\\Program Files\Microsoft SQL
Server\MSSQL\data\fooPlus\fooPlus_log.LDF'
 
D

David Vallner

Chris said:
Good guess, but

'C:\\\\Program Files\\Microsoft
SQLServer\MSSQL\\fooPlus\\fooPlus_log.LDF'

yields

Incorrect syntax near 'C:\\Program Files\Microsoft SQL
Server\MSSQL\data\fooPlus\fooPlus_log.LDF'
I meant four backslashes -everywhere-. Gets escaped to two backslashes
by Ruby, then to one backslash by MS SQL.

David Vallner
 
J

Joby Bednar

d = c.run("...'c:\\\\blah..'..")

rather than using double quotes which processes escapes within, use
single quotes and use \' when you need single quotes within?

d = c.run('...\'c:\\blah..\'..')

-Joby
 
M

moogs

Joby said:
d = c.run("...'c:\\\\blah..'..")

rather than using double quotes which processes escapes within, use
single quotes and use \' when you need single quotes within?

d = c.run('...\'c:\\blah..\'..')
-Joby

you still need to escape backslashes even when using single-quoted string
literals. (maybe you're referring to php?)

--moogs
 
D

David Vallner

moogs said:
you still need to escape backslashes even when using single-quoted
string literals. (maybe you're referring to php?)

--moogs
Doesn't Ruby have a general delimiter wart for raw strings? I know
Python has, can't recall about Ruby.

David Vallner
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,201
Messages
2,571,052
Members
47,656
Latest member
rickwatson

Latest Threads

Top