![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
![]() Осваиваю SQL запросы). Помогите мне записать пожалуйста SQL-запрос. У меня есть БД, в которой хранитится мобильный номер какого-то человека, его фамилия и имя, которая называется nomera.db. Мне надо, чтобы по моему запросу выводилась фамилия, имя и мобильный номер нужного мне человека. Как мне правильно организовать работу компонента Query, чтобы он работал? Что мне надо прописать в его свойстве SQL strings? Напишите пожалуйста код, чтобы я понял как правильно составлять запросы) Заранее благодарю))
|
#2
|
|||
|
|||
![]() Во-первых, нужно привести пример своей логики (напр.: известны фамилия и имя, найти телефон; или известен телефон, найти фамилию и имя).
Во-вторых, куда выводить: в отдельные поля (часть данных уже известна и её можно не искать) или в таблицу? Что делать если ответ не единственный? Вообще, лучше дать определение таблицы (какие поля, есть ли Primary Key). Нужно ли использовать параметры? |
#3
|
|||
|
|||
![]() В общем случае:
SELECT * FROM nomera далее, в зависимости от задачи к этому запросу добавляются модификаторы: [LEFT|RIGHT|INNER] JOIN ON - соединение таблиц WHERE - условия фильтрации ORDER BY [ASC|DESC] - сортировка GROU BY - группировка остальные, типа HAVING, используются реже. Если нужны не все поля таблицы (таблиц), то вместо '*' можно просто их перечислить через запятую. А вообще в интернете есть вполне приличные учебники по SQL для новичков. По поводу использования в Delphi. Как ты введешь запрос в соотв. свойстве SQL никого, кроме тебя, не волнует. Главное, что бы он был синтаксически правильным, а как ты будешь бить его на строки все равно. TQuery работает абсолютно так же, как TTable за исключением того, что для все операций используются соотв. запросы, которые надо указать самому. |
#4
|
||||
|
||||
![]() AlexSKu, задача логики простая). Нужно зная фамилию (или имя) человека найти в БД его номер телефона. Выводить можно либо в Label, либо в DBEdit, либо в StringGrid, либо показывать просто messagebox с номером телефона. Как угодно. Поля в таблице следующие: Фамилия, Имя, Мобильный телефон. Первичного ключа нет. Imikle, а можно пожалуйста к моей задаче применительно написать? Задача: есть фамилия и имя, нужно узнать мобильный номер человека. И если можно, то напишите плиз куда прописывать: в свойство TStrings компонента Query или в процедуру кнопки?)
|
#5
|
|||
|
|||
![]() прописывать в свойство SQL
Сведем задачу к такой: Пользователь вводит строку, которая является именем или фамилией. Тогда в SQL надо прописать такую строку: Код:
SELECT * FROM numbers WHERE firstname = :SearchString OR lastname = :SearchString Далее при нажатии кнопки пишется что-то типа этого: Код:
var S : String; begin If InputQuery('Поиск','Кого ищем',S) Then Begin Query1.ParamByName('SearchString').AsString = S; Query1.Open; Query1.First; If Query1.Eof Then ShowMessage('Такой не найден!') Else ShowMessage('Номер: ' + Query1.FieldByName('number')); Query1.Close; ... |
#6
|
||||
|
||||
![]() А что здесь означает "*"?)
Код:
SELECT * FROM numbers WHERE firstname = :SearchString OR lastname = :SearchString Код:
var S : String; begin If InputQuery('Поиск','Кого ищем',S) Then Begin Query1.ParamByName('SearchString').AsString = S; Query1.Open; Query1.First; If Query1.Eof Then ShowMessage('Такой не найден!') Else ShowMessage('Номер: ' + Query1.FieldByName('number')); Query1.Close; ... Код:
Else ShowMessage ('Номер: ' + Query1.FieldByName ('number')); Код:
Incompatible types: ‘String’ and ‘TField’ Код:
Else ShowMessage ('Номер: ' + Query1.FieldByName ('number')); Код:
Query1: Parameter ‘SearchString’ not found |