2010-06-23 1 views
1

MySql.data.dll을 사용하여 SQLServer에서 MySQL로 프레임 워크의 데이터베이스 계층을 마이그레이션하려고합니다. 내가 MySQL의에서 다음 생성 된 쿼리가 있습니다생성 된 쿼리에서 특수 문자를 해석하는 MySQL

select * from `user` where `user_domainname` = 'domain\beth'; 

MySQL이 SQLSERVER는 이러한 이스케이프 문자를 해석하지 않습니다, 반면 벨 문자로 위의 문자열에 '\의 B를'해석된다. MySQL은 이에 대한 솔루션 -

select * from `user` where `user_domainname` = 'domain\\beth'; 

는 C#에서이 작업을 수행하려면, 나는 그런 수를 고려 나를 위해 매우 실현 가능한 옵션이되지 않을 것 \ B 형 모든 \ B 또는 다른 문자를 대체 할 것 변형 나는 끝낼 것입니다.

그래서 내 질문은 - 데이터베이스 수준에서 이러한 특수 문자를 해석하지 않도록 MySQL에 옵션이 있습니까? 만약 거기에 어떤 API가 내가 그러한 변화를 수행하는 데 사용할 수 없습니다. MySqlHelper 클래스를 체크 아웃했지만 거기에서 유용한 것을 찾을 수 없었습니다. MySQL은 5.0.1을 시작으로 사전에

감사합니다,
바라 스

답변

3

, 당신은 또 다른 일반 문자로 백 슬래시를 설정하는 NO_BACKSLASH_ESCAPES을 설정할 수 있습니다. 당신이 결코 다른 곳의 백 슬래시에 의존하지 않도록하십시오! (이 재부팅 될 때까지)

라이브 서버에서이 작업을 수행하려면 :

SET GLOBAL sql_mode='NO_BACKSLASH_ESCAPES'; 

는 MySQL의 설정 파일에 추가하는 것을 잊지 마세요 (의 my.cnf 또는 my.ini 파일) 그래서 효과를 취한다 다음 시작! 줄을 추가하십시오.

sql-mode=NO_BACKSLASH_ESCAPE