2010-03-05 22 views
0

아래 코드를 실행하려고하면 다음과 같은 오류가 발생합니다. 내가 통과 한 SQL 문자열도 추가했습니다. 내가 뭘 놓치고 있니?SQL을 실행할 때 오류가 발생했습니다.

오류 :

Syntax error (missing operator) in query expression 'TOURID = 25e5eed3-ea84-4c30-a660-2c880253da60'

내 쿼리,

DELETE * FROM TOURS WHERE TOURID = 25e5eed3-ea84-4c30-a660-2c880253da60; 

내 코드,

같은 GUIDS를 사용하는 경우에는 인용 할 필요가
Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\_Development\Data\filename.accdb;Persist Security Info=False;" 
Dim DBConnection As New System.Data.OleDb.OleDbConnection(connectionString) 
Try 
    DBConnection .Open() 
    Dim cmd As New System.Data.OleDb.OleDbCommand(sql, DBConnection) 
    Dim sqlAdapterTOURS As New System.Data.OleDb.OleDbDataAdapter(cmd) 
    cmd.CommandType = CommandType.Text 
    cmd.ExecuteNonQuery() 
Catch ex As Exception 
    MessageBox.Show(ex.Message) 
Finally 
    DBConnection .Close() 
End Try 

답변

5

:

DELETE * 
FROM TOURS 
WHERE TOURID = '25e5eed3-ea84-4c30-a660-2c880253da60'; 
3

는 귀하의 값은 다음과 같이 작은 따옴표로 묶어야한다 :

DELETE * FROM TOURS WHERE TOURID = '25e5eed3-ea84-4c30-a660-2c880253da60'; 
1

추측 : 당신의 GUID 형 항목을 인용한다,

DELETE FROM TOURS WHERE TOURID = '25e5eed3-ea84-4c30-a660-2c880253da60' 
1

액세스/제트/ACE가 아닌 어쩌면? 매우 GUID 친화적 인. 마이클 카플란 전에이 수년에 대해 쓴 :

Replication and GUIDs, the Good, the Bad, and the Ugly

상황에 따라, 즉,가 StringFromGUID()와 GUIDFromString(), GUID를 작업에 대한 VBA 기능을 사용해야 할 수도 있습니다. 당신이 SQL 컨텍스트에서해야 할 일은 정확히 모르겠다. 두 GUID 필드 사이에 조인을 할 수 없다는 것을 알고 있습니다. 암시 적 조인을 사용해야합니다 (즉, WHERE 절을 대신 사용).

관련 문제