![]() |
Как узнать результат команды SELECT
Взялся за изучение БД, прикрутил к C++Builder MySQL.
Как-то все потихоньку вроде идёт, но суть выполнения запросов никак понять не могу. Я выполняю команду SELECT к примеру так: Код:
Query1->SQL->Add("SELECT * FROM authors WHERE passw=37"); 1. Если я собираюсь добавить новую запись, но при этом проверить, нет ли уже такой записи в ключевом поле. Надо использовать команду SELECT или как-то это по другому реализуется? 2. Как вообще узнать результат выполнения SELECT? Нашла она что-то или нет? 3. Если вдруг окажется, что строк с passw=37 несколько, куда они пойдут и как с ними работать? |
Apock,
1) SELECT ... FROM ... WHERE ... ORDER BY и т.д. 2) По идее должна вернуть список кортежей. 3) А черть его знает :) Наверно список. До программных взаимодействия с базами я еще не добрался. (Скорей всего будет питон). MySQL Workbench Очень полезный инструмент. Как получите работающий SQL запрос, можно будет думать над C++ запросом/ответом/обработкой. |
Apock, 1. добавление записи и изменение существующей реализуется разными командами, поэтому сразу пытаемся добавить и анализируем ответ сервера.
|
Цитата:
Код:
SELECT COUNT(*) FROM table WHERE pass=xxx Для выполнения запроса есть методы (не могу сказать какие именно, не знаком с реализацией на С++), по идее которые должны возвращать: - void, для выполнения запросов не возвращающих данных (update, unsert, delete...); - простой тип данных, для возвращения единственного значения (select sum(xxx), select avg(xxx), select distinct xxx...); - набор, для возвращения набора данных. Цитата:
При таком запросе возвращается набор данных. Работать можно с ним в цикле, как с "таблицей". Так же неплохо использовать хранимые процедуры. Чтобы реже отправлять запросы. Например. Цитата:
То же самое можно реализовать в виде хранимой процедуры. Вы вызываете хранимую процедуру, и уже на стороне сервера происходят все эти сравнения. |
Дошло наконец-то))
Просто в поиске очень много ссылок на примеры взаимодействия SQL с PHP и там запрос выглядит примерно так: Код:
$result = mysql_query("SELECT * FROM Persons"); А всё ведь гораздо проще. Компонент TQuery не просто выполняет запрос sql, но и получает результаты. Т.е. после запроса SELECT просто запрашиваем Query1->RowCount и получаем кол-во найденных строк. Спасибо всем за помощь. Теперь дело пойдёт быстрее. |
Время: 12:04. |
Время: 12:04.
© OSzone.net 2001-