Пожалуйста, исправьте мой синтаксис SQL - PullRequest
1 голос
/ 11 апреля 2011

Я знаю, что с моим синтаксисом что-то не так ... "select * from tblpayroll where empid = userid"

UserID - это переменная ...

Ответы [ 2 ]

2 голосов
/ 11 апреля 2011

очевидно, это ваша переменная vb.

select * from tblpayroll where empid = '" & userid & "' "

используйте его таким образом, и он будет работать

0 голосов
/ 11 апреля 2011

Текст "select * from tblpayroll where empid = userid" будет отправлен через точно так же, как на серверную часть SQL, часть userid не будет заменена. Таким образом, если у вас нет столбца userid, вы, вероятно, получите ошибку. Даже если у вас есть столбец userid, результаты не будут такими, как вы ожидаете.

То, что вам нужно сделать, зависит от того, является ли userid числовым или строковым значением. Для чисел вы можете использовать:

"select * from tblpayroll where empid = " & CStr(userid)

Это сначала превратит числовое значение в строку и проверит его как есть.

Для строковых значений используйте:

"select * from tblpayroll where empid = '" & userid & "'"

Это просто окружит строку кавычками, чтобы обеспечить сравнение строк. Вы должны знать, что это плохая идея, если userid не был как-то продезинфицирован - это может привести к атакам с использованием SQL-инъекций. Искусство исправления, выходящее за рамки этого конкретного вопроса, но о котором стоит помнить.

Что делать, если ваша переменная числовая, а поле базы данных является строкой, это другой вопрос. Вы можете сделать это с помощью CStr и дополнения нулями, но, поскольку это маловероятный сценарий, я не задокументировал это здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...