![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| roman |
|
|||
|
Unregistered |
Как написать SQL – запрос, что - бы он выполнялся при работе программы, т.е. не
писать его в свойстве “SQL” компонента “Query”? На “Delphi” я делаю так: procedure TForm1.Button1Click(Sender: TObject); var search :String[10]; begin search := Edit1.Text; if search <> '' then begin with Form1.Query1 do begin Close; SQL.Clear; // New запрос SQL.Add('SELECT Name, Surname, Groop, Predmet, Ocenka'); SQL.Add('FROM ":vedomost:vedomost.db"'); SQL.Add('WHERE'); SQL.Add('(Name = "'+ search + '")') else DataSource1.DataSet := Table1; SQL.Add('ORDER BY Surname'); Open; end; end; // Выводим найденное if Query1.RecordCount <> 0 then DataSource1.DataSet := Query1 else begin ShowMessage('НЕТУ'); DataSource1.DataSet := Table1; end; end; А как написать то же само, что – бы работало в CBuilder? |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: нет Всего: 154 |
Весь твой код переводить с Delphi на C++ я не буду, так как ничего сложного тут нет.
вот, из стандартной справки билдера:
-------------------- |
|||
|
||||
| roman |
|
||||
|
Unregistered |
Благодарю за помощь У меня заработало только Query1->Open(); а не Query1->ExecSQL(); Почему , не знаю! |
||||
|
|||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Все зависит от того, какие ты действия собрался выполнять... ExecSQL используют в случаях, когда не возвращается курсор...
-------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Если грубо, но более понятно то
Open для кверей типа "Select" ExecSQL для всех остальных -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| roman |
|
||||
|
Unregistered |
А как написать вложенный запрос SQL , что бы сначала выполнялось одно условие и тут же вместе с ним, другое ? На пример: Выбираем предмет, и выбираем группу, и выводим список студентов этой группы с оценками по этому предмету. Что нибудь одно вывожу без проблем, а вот вместе не могу. Вот как сделать именно ДВОЙНОЙ запрос? Вот мой код на CBuilder: AnsiString predmet, group; predmet = Edit1->Text; group = Edit2->Text; if (predmet != ' ' && group != ' ') { Query1->Close(); Query1->SQL->Clear(); Query1->SQL->Add("Select *"); Query1->SQL->Add("FROM ':jurnalcb:Student.DB'"); Query1->SQL->Add("WHERE"); Query1->SQL->Add("(Predmet= '" + predmet +"')"); ^^^^^^^^^^^ вот здесь надо еще вставить фильтрацию по переменной “group” Query1->SQL->Add("ORDER BY Student"); Query1->Open(); // Выводим найденое DataSource1->DataSet = Query1; } |
||||
|
|||||
| Vit |
|
||||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
1) Приведите текст запроса который вы хотите сделать
2) Если вы хотите запустить 2 квери одним запросом типа:
То BDE такие запросы не поддерживает, а в ADO есть методы типа NextRecordset 3) Сложные квери типа
Должны выполнятся точно так же как и обычные -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
||||
|
|||||
| roman |
|
||||||
|
Unregistered |
т.е. как текст запроса ? Мне нужно (выше указанный код) вывести студенов по определённому предмету(эт я умею), ну так как смотреть несколько групп не удобно, то мне нужно тут же выбрать из найденного студентов какоё нибудь группы. У меня всего одна таблица. |
||||||
|
|||||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Делайте это другой кверёй.
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| ShAlexNik |
|
|||
|
Unregistered |
1.
select Student, Group, Subject from Table where Group = :Group and Subject = :Subject Значение Group и Subject передаем как параметры TQuery через свойство Params (см. help) 2. select Student, Group, Subject from Table Теперь фильтруем выборку с помощью свойства TQuery->Filter (см. help) |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |