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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2009, 23:45   #1
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию Добавление записи в DBGrid c помощью кода

У меня добавляет запись, но очень уж криво Можете посоветовать как лучше можно сделать
Код:
procedure TFD_PAC.BitBtn1Click(Sender: TObject);
begin
DM.ADOQ_PAC.Close;
DM.ADOQ_PAC.SQL.Clear;
DM.ADOQ_PAC.SQL.Text:='INSERT INTO pacient (familiya) VALUES (:e1);';
DM.ADOQ_PAC.Parameters.ParamByName('e1').Value:=Edit1.Text;
DM.ADOQ_PAC.Parameters[0].Value:=Edit1.Text;
DM.ADOQ_PAC.ExecSQL;

DM.ADOQ_PAC.Close;
DM.ADOQ_PAC.SQL.Clear;
DM.ADOQ_PAC.SQL.Add('SELECT familiya,imya,otchestvo,data_rogdeniya,pol,adres,telefon,kollichestvo_detey,semeynoe_pologenie,opekun,gitel,obrazovanie FROM pacient');
DM.ADOQ_PAC.Open;
FormActivate(Self);
end;
Еще вопрос у меня есть поле "pol" в таблице pacient оно у меня bit(1)-типа, при внесении оно у меня ставится только 0 или 1 а как мне сделать так, чтобы вводилось не 0 или 1, а "муж" или "жен" ?
Может там нужно тип поменять, если да то на какой ?
1 старый программист, лучше новых 2-х

Последний раз редактировалось Droid; 27.06.2009 в 10:32.
Droid вне форума Ответить с цитированием
Старый 27.06.2009, 12:16   #2
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
Код:
'SELECT familiya,imya,otchestvo,data_rogdeniya,pol,adres,telefon,kollichestvo_detey,semeynoe_pologenie,opekun,gitel,obrazovanie FROM pacient'
а не проще
Код:
'Select * from pacient'
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 27.06.2009, 12:52   #3
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Цитата:
Сообщение от ОДИНОЧЕСТВО В СЕТИ Посмотреть сообщение
а не проще
Код:
'Select * from pacient'
нет не лучше у меня идентификатор не учавствует я его опустил.

Подскажите как мне добавить дату в ячейку DBGrid ? Пробовал так
Код:
DM.ADOQ_PAC.Parameters.ParamByName('d').Value:=datetostr(datetimepicker1.DateTime);
и так пробовал
Код:
DM.ADOQ_PAC.Parameters.ParamByName('d').Value:=datetimepicker1.Date;
неполучилось

выдает это:56.jpg


Но у меня, тако впечатление, что он мне с форматом чет потуает, потому что в MySQL Front записывается дата как 1985-12-05 а в Delphi он преобразует в 05.12.1985 и как сделать нормально не знаю:
весь код:
Код:
DM.ADOQ_PAC.Close;
DM.ADOQ_PAC.SQL.Clear;
DM.ADOQ_PAC.SQL.Text:='INSERT INTO pacient (familiya, imya,otchestvo,data_rogdeniya,telefon,kollichestvo_detey,semeynoe_pologenie,adres,gitel,obrazovanie) VALUES (:e1,:e2,:e3,:d,:e4,:e5,:e6,:e7,:e8,:m1);';
DM.ADOQ_PAC.Parameters.ParamByName('e1').Value:=Edit1.Text;
DM.ADOQ_PAC.Parameters.ParamByName('e2').Value:=Edit2.Text;
DM.ADOQ_PAC.Parameters.ParamByName('e3').Value:=Edit3.Text;
DM.ADOQ_PAC.Parameters.ParamByName('e4').Value:=Edit4.Text;
DM.ADOQ_PAC.Parameters.ParamByName('e5').Value:=strtoint(Edit5.Text);
DM.ADOQ_PAC.Parameters.ParamByName('e6').Value:=Edit6.Text;
DM.ADOQ_PAC.Parameters.ParamByName('e7').Value:=Edit7.Text;
DM.ADOQ_PAC.Parameters.ParamByName('e8').Value:=Edit7.Text;
DM.ADOQ_PAC.Parameters.ParamByName('m1').Value:=memo1.Text;
datetimepicker1.DateFormat:='yyyy-mm-dd'; // тут как писать не знаю ( 
DM.ADOQ_PAC.Parameters.ParamByName('d').Value:=datetimepicker1.Date;// тут тоже наверное не правильно (
//DM.ADOQ_PAC.Parameters[0].Value:=Edit1.Text;
DM.ADOQ_PAC.ExecSQL;
1 старый программист, лучше новых 2-х

Последний раз редактировалось Droid; 27.06.2009 в 14:35.
Droid вне форума Ответить с цитированием
Старый 27.06.2009, 14:41   #4
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

DM.ADOQ_PAC.Parameters.ParamByName( 'd').asString := FormatDateTime('dd-mm-yyyy', datetimepicker1.Date);
Evgeniy26 вне форума Ответить с цитированием
Старый 27.06.2009, 14:46   #5
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Цитата:
Сообщение от Evgeniy26 Посмотреть сообщение
DM.ADOQ_PAC.Parameters.ParamByName( 'd').asString := FormatDateTime('dd-mm-yyyy', datetimepicker1.Date);
во благодар
Что можно сделать с этим:
Еще вопрос у меня есть поле "pol" в таблице pacient оно у меня bit(1)-типа, при внесении оно у меня ставится только 0 или 1 а как мне сделать так, чтобы вводилось не 0 или 1, а "муж" или "жен" ?
Может там нужно тип поменять, если да то на какой ?
1 старый программист, лучше новых 2-х

Последний раз редактировалось Droid; 27.06.2009 в 14:50.
Droid вне форума Ответить с цитированием
Старый 27.06.2009, 15:12   #6
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

1)Можно при создании базы создать поле:
pol ENUM('муж', 'жен') NOT NULL DEFAULT 'муж' - и вводить муж или жен.

2)Создай таблицу, занеси туда муж и жен с индексом 1 и 2. Потом в ADOQuery добавь поле Lookup.(Key Fields - Pol, DateSet - таблицы где муж и жен, Lookup Keys - индекс муж и жен, Result Fields - поле где муж и жен)
Evgeniy26 вне форума Ответить с цитированием
Старый 27.06.2009, 15:18   #7
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

pol ENUM('муж', 'жен') NOT NULL DEFAULT 'муж' - и вводить муж или жен. -
ENUM - это тип его задать в MySQL - поменять тип столбца или написать как запрос ?
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 27.06.2009, 15:36   #8
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Вот пример http://dev.mysql.com/doc/refman/5.1/en/enum.html. Т.к у тебя бд создана используй ALTER.
Evgeniy26 вне форума Ответить с цитированием
Старый 27.06.2009, 15:37   #9
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Цитата:
Сообщение от Evgeniy26 Посмотреть сообщение
Вот пример http://dev.mysql.com/doc/refman/5.1/en/enum.html. Т.к у тебя бд создана используй ALTER.
Все я создал короче ENUM, с помощью какого компонента им можно управлять и как ?
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 27.06.2009, 15:37   #10
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Цитата:
Сообщение от Evgeniy26 Посмотреть сообщение
Вот пример http://dev.mysql.com/doc/refman/5.1/en/enum.html. Т.к у тебя бд создана используй ALTER.
Все я создал короче ENUM, с помощью какого компонента им можно управлять и как ?

ППц это надо во фронте создать еще 1 таблицу ? потом ее надо с главной как то соеденить ? или как ?
1 старый программист, лучше новых 2-х

Последний раз редактировалось Droid; 27.06.2009 в 16:00.
Droid вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление записи gitzzz Microsoft Office Access 2 23.06.2009 19:30
Добавление записей в DBGrid с помощью Query Droid БД в Delphi 5 21.06.2009 03:02
Добавление записи LLIYT БД в Delphi 15 09.06.2009 18:25
Добавление записи rn6hac БД в Delphi 3 02.06.2009 10:26
Добавление записи.... Droid БД в Delphi 2 04.06.2008 15:50