17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172
1

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

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

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

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

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

P.S. Как я понял... либо запрос должен быть в другом виде... либо надо что-то куда-то добавить, чтобы Builder понимал такие запросы... В общем из книги я так нифига и не понял как это сделать.
Мей би кто подскажет?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.11.2009, 22:18
Ответы с готовыми решениями:

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

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

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

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

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

Fermion, просто допиши open в начале и close в конце и у тебя все заработает, но поле переименуй, потом могут проблемы полезть, особенно при запросах, когда тебе захочется получить e-mail, а sql тебя просто пошлет, т.к. не найдет поля mail
0
55 / 55 / 5
Регистрация: 09.03.2009
Сообщений: 177
14.11.2009, 11:42 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
17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172
14.11.2009, 12:02  [ТС] 43
Цитата Сообщение от 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
55 / 55 / 5
Регистрация: 09.03.2009
Сообщений: 177
14.11.2009, 12:12 44
Цитата Сообщение от Fermion Посмотреть сообщение
Query - то закрыто? Так?
Нет, зависит от того какой вы запрос используете в свойстве SQL, если это условие выбора которое может выбрать из базы некий набор данных (SELECT тобишь), тогда Query переводится в активное состояние и работа также как и Table, а если вы используете запросы модификации таблицы (INSERT, DELETE, ...) вот в этом случае Query должен быть неактивен, а запрос исполняется через ExecSQL();
1
17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172
14.11.2009, 13:32  [ТС] 45
Цитата Сообщение от 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
55 / 55 / 5
Регистрация: 09.03.2009
Сообщений: 177
14.11.2009, 13:41 46
Цитата Сообщение от Fermion Посмотреть сообщение
номер 1, а вторая номер 11. Кто нить знает как с этим бороться?
написать свою собственную функцию, которая будет заполнять это поле.
0
17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172
14.11.2009, 14:11  [ТС] 47
Цитата Сообщение от Cepera Посмотреть сообщение
написать свою собственную функцию, которая будет заполнять это поле.
Видимо придется. Я просто думал, что можно обойтись "малой кровью".
0
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
15.11.2009, 14:03 48
Fermion, truncate table обнуляет счетчик, либо удаление таблицы и создание новой
0
15.11.2009, 14:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2009, 14:03
Помогаю со студенческими работами здесь

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

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

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

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

Подскажите новичку
Подскажите новичку какой интегрированной средой разработки пользоваться и как ?

Подскажите новичку
Приветствую! Я в программировании новичок, возникают вопросы даже на «первых ступенях»......


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

Или воспользуйтесь поиском по форуму:
48
Ответ Создать тему
Опции темы

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