| 
| 
 | Вопрос # 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 выражений и не высказывался
  только про компоненты для доступа. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |