Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
146 / 129 / 6
Регистрация: 29.07.2008
Сообщений: 506
1

Не могу никак разобраться с SQL

14.02.2009, 17:31. Показов 1189. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не могу никак разобраться с SQL.
Вот например у меня есть таблица data1.db. Я её загружаю
C++
1
2
3
4
5
6
void __fastcall TForm1::Button1Click(TObject *Sender)
{
...
Query1->SQL->Add("SELECT * FROM data1.db")
...
}
Допустим мне надо что-бы к полю Code добавилось +1. Пишу:
C++
1
2
3
4
5
6
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Query1->Close();
Query1->SQL->Add("UPDATE data1.db SET Code=Code+1");
Query1->Open();
}
может надо писать Query1->SQL->Clear();?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.02.2009, 17:31
Ответы с готовыми решениями:

Никак не могу разобраться
Люди помогите пожалуйста, мучаюсь никак не получается ((( Ввести одномерный массив A из N...

Никак не могу разобраться с postmessage
#include "stdafx.h" #include <windows.h> #include <iostream> using namespace std; int...

Никак не могу разобраться с ошибкой.
Задание: Имеются числа х1,х2,...,хn.Расставить их в таблице размером (nхn) так,чтобы в каждой...

Никак не могу разобраться со скриптом
Здравствуйте! У меня такая ситуация. Есть код, вызывающий popup окно. Что нужно дописать, чтобы...

5
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
15.02.2009, 01:08 2
ну вообще было бы неплохо это делать, чтобы запросы не легли один на другой... а еще лучше динамически создавать TQuery и после выполнения удалять
0
146 / 129 / 6
Регистрация: 29.07.2008
Сообщений: 506
15.02.2009, 13:49  [ТС] 3
так в том то и проблема, что как ни пиши постоянно ошибки(при выполнении) выскакивают.
единственный вариант когда ошибки нет но становится пустой DBGrid
C++
1
2
3
4
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Query1->SQL->Add("UPDATE data1.db SET Code=Code+1");
}
а как правильно(в плане последовательности) я не знаю, и вообще что когда писать

Добавлено через 1 час 1 минуту 12 секунд
кажется понял: чтобы UPDATE data1.db SET Code=Code+1 хватает
C++
1
2
3
4
5
6
7
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("UPDATE data1.db SET Code=Code+1;");
Query1->ExecSQL();
}
но как сделать чтобы дбгрид показал изменённый набор данных непонятно, может кто знает что надо писать?
0
Любитель давать советы
342 / 135 / 14
Регистрация: 12.01.2009
Сообщений: 511
15.02.2009, 13:49 4
Будем разбираться по порядку.
SQL-запросы делятся на 2 типа: одни возвращают данные (select), другие - нет (insert, update). И используются они по-разному.

Запросы с данными открываются командой Open, после чего их данные используются - отображаются в гриде, например. Если запрос закрыть, данные в гриде исчезнут - они нигде не хранятся дополнительно.

Запросы без данных обычно исполняются командой ExecSQL без открытия. И результат их действия мы не увидим, пока снова не откроем какой-либо запрос с данными.
1
146 / 129 / 6
Регистрация: 29.07.2008
Сообщений: 506
15.02.2009, 14:51  [ТС] 5
паходу так:
C++
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("UPDATE data1.db SET Code=Code+1;");
Query1->ExecSQL();
Query1->SQL->Clear();
Query1->SQL->Add("SELECT * FROM data1.db;");
Query1->Open();
}
0
Любитель давать советы
342 / 135 / 14
Регистрация: 12.01.2009
Сообщений: 511
15.02.2009, 17:06 6
Примерно так. Но лично я все-таки предпочитаю использовать два разных запроса, так как select обычно нужен всегда - зачем его перебивать на что-то другое.
0
15.02.2009, 17:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2009, 17:06
Помогаю со студенческими работами здесь

Никак не могу разобраться в FoxPro 9.0
Как сделать нормальную таблицу? в старом FoxPro было !keyrus и он рисовал таблицу через Shift а в...

Никак не могу разобраться с конструктором.
Добрый день. Недавно стал изучать C++. Уже 2 день пытаюсь понять суть конструктора, но не могу. ...

Никак не могу разобраться со списками в Си
Всем привет, недавно столкнулся со списками и не понимаю несколько моментов. Вот пример функции,...

Никак не могу разобраться с ООП
В общем товарищи не могу сделать простого(наверное) Нужно привести в красивый вид, избавится от...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru