|
Вопрос # 5 119/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Хочу сделать такую программку которая будет служить для изменения записей в полях базы данных которая на MS SQL. Есть таблица (fru) в ней два столбца название фрукта (frukt) и количество (kol). Вот программка должна помочь при вводе названия фрукта в поле Edit допустим выводил например в таблицу фрукт и количество и я мог изменять количество фруктов в базе. Подскажите пожалуйста как лучше это сделать?
 |
Вопрос задал: winterfell (статус: Посетитель)
Вопрос отправлен: 23 марта 2011, 10:27
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, winterfell!
Вначале нужно выбрать библиотеку, с помощью которой будет осуществлен доступ к MySQL. Вот три варианта
http://svdpro.info/page.php?id=18 (Direct Mysql Objects), http://www.da-soft.com/anydac/ (AnyDac - тут часть платных, а часть - бесплатных) и http://sourceforge.net/projects/zeoslib/ (zeoslib - весьма популярные и бесплатные).
любая библиотека умеет выполнять sql выражения (если не умеет - гнать в шею!). Я показываю выражения, Вы смотрите в примеры библиотеки и применяете их. Если не получится - пишите в минифоруме, что именно не получается и какую библиотеку выбрали, поможем.
Итак, что бы найти кол-во какого то фрукта, нужно такое выражение
SELECT frukt, kol FROM fru WHERE frukt="имя_фрукта" (так как имя фрукта находиться в edit и выполнять данное выражение будет какой то метод, то в коде это будет выглядеть где то так
execsql('SELECT frukt, kol FROM fru WHERE frukt="'+edit1.txt+'"'); )
Что бы сменить кол-во фруктов, используем такое выражение
UPDATE fru SET kol=новое_количество where frukt="имя_фрукта";
и ещё понадобится выражение для вставки нового фрукта
INSERT INTO fru (frukt, kol) VALUES ("имя_фрукта", количество)
Замечу, что строки (поле frukt) нужно брать в кавычки, а числа - нет. Если в строке присутствуют кавычки, то их нужно "ескейпить".
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 23 марта 2011, 11:19
|
Мини-форум вопроса
Всего сообщений: 6; последнее сообщение — 24 марта 2011, 17:50; участников в обсуждении: 3.
|
Мережников Андрей (статус: Абитуриент), 23 марта 2011, 21:21 [#1]:
to Вадим К - в вопросе шла речь не о MySQL, а о MS SQL. Поэтому можно воспользоваться стандартными компонентами ADO.
А вместо двойных кавычек можно использовать функцию QuotedStr().
|
|
winterfell (статус: Посетитель), 24 марта 2011, 03:30 [#2]:
Вот так написал поправьте пожалуйста что не верно делаю?
procedure TForm1.Button1Click(Sender: TObject);
begin
dbs.Open;
q1.SQL.Text:='select card_number,bonus from card where card_number = '+edit1.Text+';
dbs.Close;
end;
end.
|
|
Мережников Андрей (статус: Абитуриент), 24 марта 2011, 05:44 [#3]:
При чем тут card, если в вопросе речь шла о фруктах?
если в Edit1 вводится число, то только убрать +' после edit1.text.
если в edit1 могут вводиться любые символы, то надо сделать так:
'select card_number,bonus from card where card_number = '+QuotedStr(edit1.Text);
Да! Если хотите увидеть данные на экране, то уберите dbs.close
|
|
winterfell (статус: Посетитель), 24 марта 2011, 08:09 [#4]:
Фрукты были для примера. Делаю вот так и при нажатии кнопки в таблице нечего не выводится что не так делаю?
procedure TForm1.Button1Click(Sender: TObject);
begin
dbs.Open;
q1.SQL.Text:='select card_number,bonus from card where card_number = '+edit1.Text;
end;
end.
|
|
Вадим К (статус: Академик), 24 марта 2011, 11:07 [#5]:
Цитата (Мережников Андрей):
в вопросе шла речь не о MySQL, а о MS SQL А я в тексте вчера видел MySQL Но суть сиквел выражений от этого хуже не стает.Цитата (winterfell):
Фрукты были для примера. Делаю вот так и при нажатии кнопки в таблице нечего не выводится что не так делаю?
Выражение не только нужно присвоить, а и выполнить!
там должно быть что то вида
q1.open(); или q1.exec()
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Мережников Андрей (статус: Абитуриент), 24 марта 2011, 17:50 [#6]:
Цитата (Вадим К):
А я в тексте вчера видел MySQL  Но суть сиквел выражений от этого хуже не стает.
А я по поводу SQL выражений и не высказывался только про компоненты для доступа.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|