1 (edited by sibprogsistem 2019-09-08 20:30:33)

Topic: проверка записи

как проверить запись в таблице?

так
if SQLExecute('SELECT id FROM firstNameClient WHERE name='+firstName) = '0'
if SQLExecute('SELECT COUNT(id) FROM firstNameClient WHERE name='+firstName) = '0'
if SQLExecute('SELECT IFNULL (id,0) FROM firstNameClient WHERE name='+firstName) = '0'

работет только с числовыми значениями

но если в переменной firstName будет текст, то получаю ошибку, мол (поле не найдено) ..

new.ComboBox1.dbSQLExecute('SELECT name FROM merchandise LEFT OUTER JOIN basket ON merchandise.id <> basket.id_merchandise WHERE basket.nameUser='+login.Edit1.Text);

в этом запросе тоже самое, принимает только если в переменной login.Edit1.Text числовае значение..

2 (edited by sibprogsistem 2019-09-09 16:32:21)

Re: проверка записи

вот пример

если искать числовое значение то работает  а если  строковое то ошибка
и я же правельно понимаю что  IFNULL (id, 0) - если нет такого должен вернуть 0 ? но этого не происходит..

Post's attachments

Attachment icon SQL_STRING_SEARCH_ERROR.7z 2.95 kb, 270 downloads since 2019-09-09 

Re: проверка записи

для текста, в переменной firstName должны быть кавычки

  if SQLExecute('SELECT id FROM firstNameClient WHERE name='''+firstName+'''') = '0' 


функция IFNULL возвращает второй параметр, если поле в первом параметре имеет значение NULL, если SQL запрос не вернул записей, то функция IFNULL в данном случае не работает, так как нет записей.

Dmitry.

Re: проверка записи

спасибо!