Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2010, 22:45   #1
GreenShuller
Пользователь
 
Регистрация: 23.06.2010
Сообщений: 23
Сообщение Работа с UniDac. Сохранение в MySQL

Доброго времени суток!

Пытаюсь через форму сохранить данные в mysql. На CRDbGrid строка отоброжается, а в базе на MySQL этой строки нет.

Компоненты на форме: Uniconnection, UniDataSource, UniQuery, MySqlUniProvider, CRDBGrid

Подскажите как сохранить данные в БД.
GreenShuller вне форума Ответить с цитированием
Старый 29.06.2010, 11:26   #2
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Все что нужно
Uniconnection, UniQuery, MySqlUniProvider. Грид можешь взять обыкновенный.
В UniQuery в свойстве SQL пишешь запрос на добавление. И усе.
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Старый 29.06.2010, 15:20   #3
GreenShuller
Пользователь
 
Регистрация: 23.06.2010
Сообщений: 23
По умолчанию

Не получается записать. А какимм запрос на запись должен быть? Можешь в пример привести что нибудь?
GreenShuller вне форума Ответить с цитированием
Старый 30.06.2010, 06:33   #4
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Общий вариант выглядит так.
Код:
INSERT INTO tablename(pole1,pole2...)
VALUES(value1,value2...);
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Старый 30.06.2010, 07:57   #5
GreenShuller
Пользователь
 
Регистрация: 23.06.2010
Сообщений: 23
По умолчанию

Я написал следующий код в поле Insert:

Код:
INSERT INTO kontakt
  (`Дата`, `Фамилия`, `Имя`, `Город`, Email, Skype, `Должность`, `Пригласил`, `Комментарий`)
VALUES
  (:`Дата`, :`Фамилия`, :`Имя`, :`Город`, :Email, :Skype, :`Должность`, :`Пригласил`, :`Комментарий`)
Сохранение не происходит.

Что должно быть на Begin кнопки при сохранении?

Код:
Form1.UniQuery1.Post;
Close;
Это?

Последний раз редактировалось GreenShuller; 30.06.2010 в 08:03.
GreenShuller вне форума Ответить с цитированием
Старый 30.06.2010, 11:33   #6
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Сначала заполняешь параметры.
Код:
:`Дата`, :`Фамилия`, :`Имя`, :`Город`, :Email, :Skype, :`Должность`, :`Пригласил`, :`Комментарий`
Заполнение параметров выглядит так.
Код:
Form1.UniQuery1.ParamByName('Фамилия').Value:='Иванов';
После этого вызываешь выполнение
Код:
Form1.UniQuery1.ExecSQL;
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Старый 30.06.2010, 21:44   #7
GreenShuller
Пользователь
 
Регистрация: 23.06.2010
Сообщений: 23
По умолчанию

Код:
Form1.UniQuery1.ExecSQL;
Откуда ты это взял?? У меня нет такого. А если пишу, то выдает ошибку.
GreenShuller вне форума Ответить с цитированием
Старый 01.07.2010, 08:14   #8
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Execute. Я ошибся.
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Старый 03.07.2010, 10:29   #9
GreenShuller
Пользователь
 
Регистрация: 23.06.2010
Сообщений: 23
По умолчанию

У меня не получается сохранить строку.

В общем последовательность такая:

На кнопке "добавить" ставлю
Код:
Form2.show;
UniQuery1.insert;
Потом на Form2 на кнопке "ОК" ставлю
Код:
Form1.uniQuery1.Execute;
Close;
После того, как нажму на кнопку ОК, строка исчезает и не записывается.

В чем может быть причина?

Есть у кого ниб сырой вариант простенькой темы по сохранению в Бд mysql?
GreenShuller вне форума Ответить с цитированием
Старый 05.07.2010, 04:37   #10
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Итак если ты идешь по пути
Код:
UniQuery1.insert;
то тебе надо использовать не UniQuery, а UniTable.
И тогда ты пишешь
Код:
UniTable.Insert;
... //действия по заполнению полей
UniTable.Post;
Если ты используешь UniQuery.
То в его свойстве SQL пишешь запрос на вставку. Пример:
Код:
INSERT INTO tablename(pole1,pole2...)
VALUES(:value1,:value2...);
Заполняешь параметры.
Код:
UniQuery.ParamByName('value1').Value:='Иванов';
UniQuery.ParamByName('value2').Value:='Иван';
И после этого выполняешь запрос вызвав метод
Код:
UniQuery.Execute;
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с MySQL в С++ с использованием библиотеки mysql++ oleg kutkov Visual C++ 5 30.12.2010 16:40
обновление в блоге - Работа с MySQL в С++ с использованием библиотеки mysql++ Pblog Обсуждение статей 0 16.08.2009 16:00
Сохранение базы MySQL в виде запроса... masterdela БД в Delphi 3 25.02.2009 07:01
Кривое Сохранение в MySQL MegaLord PHP 1 05.01.2008 19:11