Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/34: Рейтинг темы: голосов - 34, средняя оценка - 4.71
 Аватар для Fermion
17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172

Подскажите новичку как работать с БД ?

08.11.2009, 22:18. Показов 7234. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Читал книгу - нифига не понял. Чел пишет об SQL запросах и при этом НИ СЛОВА о том КАК их осуществлять на практике.
Работал с MySQL на PHP так вот там действительно можно было оправить запрос вида:

INSERT INTO: users (NickName, Parol, E-mail) VALUES ('Vasya', 'password', 'miltse@mail.ru');

Причём именно в таком виде и отправить.
А Builder не хочет кушать запрос в таком виде. А как же тогда?

P.S. Как я понял... либо запрос должен быть в другом виде... либо надо что-то куда-то добавить, чтобы Builder понимал такие запросы... В общем из книги я так нифига и не понял как это сделать.
Мей би кто подскажет?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.11.2009, 22:18
Ответы с готовыми решениями:

Подскажите новичку как работать с кодировкой utf-8
Здравствуйте. Я начал изучать php и столкнулся с проблемой кодировок ((, а именно: Есть html файл, сохраненый в кодировке utf_8 wiht...

Подскажите новичку как разобраться с ссылками
Есть такая строка: <a href="javascript://">Ссылка1</a> Их несколько. При нажатии на такую ссылку появляется определенный текст. Так...

Подскажите новичку как поступить с клиент-банком
Здравствуйте! Я начинающий программист по 1С. Внедряем участок сбыта. Т.е. сделана отгрузка товара, распечатка ТТН... Есть...

47
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
14.11.2009, 11:18
Студворк — интернет-сервис помощи студентам
Cepera, предлагаю его отправить курить мануалы, потому что реально человек сел и угадывает, чтобы такое написать, чтобы заработало...

Fermion, просто допиши open в начале и close в конце и у тебя все заработает, но поле переименуй, потом могут проблемы полезть, особенно при запросах, когда тебе захочется получить e-mail, а sql тебя просто пошлет, т.к. не найдет поля mail
0
 Аватар для Cepera
55 / 55 / 5
Регистрация: 09.03.2009
Сообщений: 177
14.11.2009, 11:42
Цитата Сообщение от Fermion Посмотреть сообщение
Хорошо... а как его активировать?
Вы действительно не знаете как перевести набор данных из одного состояния в другое? Как же вы тогда читаете Архангельского?
Методы Open() и Close() (ну или Active = true или Active = false) компонентов как TTable так и TQuery
Пример:
C++
1
2
3
4
// Открываем набор данных
Table1->Open() // или Active = true; как больше нравиться
// Закрываем набор данных
Table1->Close() // или Active = false; как больше нравиться
А в остальном перечитайте ещё раз ВНИМАТЕЛЬНО весь топик, все уже довольно подробно расписано.

Добавлено через 10 минут
В запросе, возможно, требуется так же брать в кавычки название таблицы
SQL
1
INSERT INTO \"users\" (\"NickName\", \"Parol\", \"E-mail\") VALUES ('Вася', 'password', 'miltse@mail.ru')
Покрайней мере я так делал при запросах к postgresql, т.к. если название таблицы начиналось с большой буквы, нужно было брать в кавычки это название.
0
 Аватар для Fermion
17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172
14.11.2009, 12:02  [ТС]
Цитата Сообщение от Cepera Посмотреть сообщение
Методы Open() и Close() (ну или Active = true или Active = false) компонентов как TTable так и TQuery
Я догадывался. Просто хотелось уточнить. Значит я правильно понял, что если я работаю через Table то у меня соединение должно быть открыто, а если через Query - то закрыто? Так?

Добавлено через 7 минут
Короче с помощью Table у меня наконец-то получилось. Поле E-mail на всякий случай переименовал.
Вот рабочий код:
C++
1
2
3
4
5
6
Table1->Active = true;
Table1->Insert();
Table1->FieldByName("NickName")->AsString = "Vasya";
Table1->FieldByName("Parol")->AsString = "Parolik";
Table1->FieldByName("Mailo")->AsString = "milo@milanet.com";
Table1->Post();
Начинаю догадываться почему не работает Query (хотя надо будет это ещё проверить). В общем расклад (как я думаю) такой: у меня на форме один компонент DataSource и у него выставлено (в инспекторе) DataSet->Table1. Вот поэтому (наверное) при попытке работать с Query вылетает баг.
Будет время - проверю.
0
 Аватар для Cepera
55 / 55 / 5
Регистрация: 09.03.2009
Сообщений: 177
14.11.2009, 12:12
Цитата Сообщение от Fermion Посмотреть сообщение
Query - то закрыто? Так?
Нет, зависит от того какой вы запрос используете в свойстве SQL, если это условие выбора которое может выбрать из базы некий набор данных (SELECT тобишь), тогда Query переводится в активное состояние и работа также как и Table, а если вы используете запросы модификации таблицы (INSERT, DELETE, ...) вот в этом случае Query должен быть неактивен, а запрос исполняется через ExecSQL();
1
 Аватар для Fermion
17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172
14.11.2009, 13:32  [ТС]
Цитата Сообщение от Cepera Посмотреть сообщение
Нет, зависит от того какой вы запрос используете в свойстве SQL, если это условие выбора которое может выбрать из базы некий набор данных (SELECT тобишь), тогда Query переводится в активное состояние и работа также как и Table, а если вы используете запросы модификации таблицы (INSERT, DELETE, ...) вот в этом случае Query должен быть неактивен, а запрос исполняется через ExecSQL();
Понял. Спасибо!

Добавлено через 1 час 11 минут
Блин.. опять какой-то косяк. В общем есть код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Table1->Active = true;
Table1->First();
Table1->Insert();
Table1->FieldByName("NickName")->AsString = "Vasya";
Table1->FieldByName("Parol")->AsString = "Parolik";
Table1->FieldByName("Mailo")->AsString = "milo@milanet.com";
Table1->Post();
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Table1->Last();
Table1->Delete();
}
При этом в таблице есть поле Number, которое типа присваивается автоматически и увеличивается на единицу. Так вот... когда первой кнопкой я добавляю записи, эта циферка растет. Допустим я добавил 10 записей. А потом я удаляю записи второй кнопочкой. Допустим я удалил все кроме первой. Так вот потом... при попытке добавить запись нумерация начинается с того на котором я остановился до этого.
Ну или говоря проще: первая запись - номер 1, а вторая номер 11. Кто нить знает как с этим бороться?
0
 Аватар для Cepera
55 / 55 / 5
Регистрация: 09.03.2009
Сообщений: 177
14.11.2009, 13:41
Цитата Сообщение от Fermion Посмотреть сообщение
номер 1, а вторая номер 11. Кто нить знает как с этим бороться?
написать свою собственную функцию, которая будет заполнять это поле.
0
 Аватар для Fermion
17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172
14.11.2009, 14:11  [ТС]
Цитата Сообщение от Cepera Посмотреть сообщение
написать свою собственную функцию, которая будет заполнять это поле.
Видимо придется. Я просто думал, что можно обойтись "малой кровью".
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
15.11.2009, 14:03
Fermion, truncate table обнуляет счетчик, либо удаление таблицы и создание новой
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.11.2009, 14:03
Помогаю со студенческими работами здесь

Подскажите новичку как настроить права на папки
Linux Debian. php+apache+mysql+phpmyadmin+zend Закачиваю файлы по ftp. Папка /var/www - владелец user, права 755. В папке www...

Подскажите новичку, как связать Access с Delphi?
Есть база данных на Access. Надо создать на Delphi только интерфейс пользователя с базой данных. Как следует создать связь между Aceess и...

Angular 2. Как скрыть / показать всплывающее окно, подскажите новичку
Добрый день. Недавно в Angular 2. Мне нужно создать окно с рядом вкладок, содержащих настройки. Это окно должно всплывать на странице при...

Подскажите новичку.как значения переменной из кода VBA вывести в таблицу Acc-а
В общем можете объясните в подробностях, по возможности, как значения переменной из кода VBA вывести в таблицу Accessа. ниже скрины того,...

Подскажите новичку. Как сделать переход на другую ссылку (редирект) если исходная не открылась (битая)
Например есть фото на одном из бесплатных хостингов, и естественно может пропадать время от времени или же вообще ссылка на фото станет не...


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

Или воспользуйтесь поиском по форуму:
48
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru