Аватар для Fermion
17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172

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

08.11.2009, 22:18. Показов 7325. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru