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

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

08.11.2009, 22:18. Показов 7350. Ответов 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
Ответ Создать тему
Новые блоги и статьи
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов. Сигнатура func Fetch(urls string, maxConcurrent int) Result Пример urls :=. . .
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition) Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool Worker Pool — паттерн конкурентной обработки задач в Go. Суть: фиксированное количество горутин-воркеров читают задачи из общего канала и пишут результаты в общий канал результатов. . . .
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь lIs4oanZS9Y
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru