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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2010, 03:38   #1
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию функция обновления записи

подскажите плз народ как можно сделать так, чтобы заменить параметр на компонент dm.ADOQ_PACid_p.Value ?
Код:
function TFD_DOL.reconect(s: string): variant;
begin
DM.ADOQ_DL.Close;
dm.ADOQ_DL.SQL.Clear;
dm.ADOQ_DL.SQL.Add('+S+');
dm.ADOQ_DL.open;
result:=s;
end;

reconect('SELECT * FROM p_i_dolgnost pid LEFT OUTER JOIN p pt ON pid.id_p=pt.id_p INNER JOIN dolgnost d ON pid.id_dolgnosti=d.id_dolgnosti 
WHERE pid.id_p='+dm.ADOQ_PACid_p.Value+';');
inttostr не катит
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 09.05.2010, 11:46   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

боюсь что это здесь лишнее
Код:
dm.ADOQ_DL.SQL.Add('+S+');
а здесь ни к чему
Код:
WHERE pid.id_p='+dm.ADOQ_PACid_p.Value+';');
а чтобы все заработало, нужно писать хотя бы так
Код:
WHERE pid.id_p='+dm.ADOQ_PACid_p.AsInteger);
только что мешает добавить 2й параметр - айдишник и подставлять его как параметр?!
Код:
function TFD_DOL.reconect(s: string; pKey:integer): variant;
begin
DM.ADOQ_DL.Close;
dm.ADOQ_DL.SQL.Clear;
dm.ADOQ_DL.SQL.Add(S);
dm.ADOQ_DL.SQL.Prepare;
dm.ADOQ_DL.SQL.Parameters.ParamByName('pKey').Value := pKey;
dm.ADOQ_DL.open;
result:=s;
end;

reconect('SELECT * FROM p_i_dolgnost pid LEFT OUTER JOIN p pt ON pid.id_p=pt.id_p INNER JOIN dolgnost d ON pid.id_dolgnosti=d.id_dolgnosti 
WHERE pid.id_p= :pKey', dm.ADOQ_PACid_p.Value);

Последний раз редактировалось soleil@mmc; 09.05.2010 в 11:49.
soleil@mmc вне форума Ответить с цитированием
Старый 09.05.2010, 16:12   #3
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
боюсь что это здесь лишнее
Код:
dm.ADOQ_DL.SQL.Add('+S+');
а здесь ни к чему
Код:
WHERE pid.id_p='+dm.ADOQ_PACid_p.Value+';');
а чтобы все заработало, нужно писать хотя бы так
Код:
WHERE pid.id_p='+dm.ADOQ_PACid_p.AsInteger);
только что мешает добавить 2й параметр - айдишник и подставлять его как параметр?!
Код:
function TFD_DOL.reconect(s: string; pKey:integer): variant;
begin
DM.ADOQ_DL.Close;
dm.ADOQ_DL.SQL.Clear;
dm.ADOQ_DL.SQL.Add(S);
dm.ADOQ_DL.SQL.Prepare;
dm.ADOQ_DL.SQL.Parameters.ParamByName('pKey').Value := pKey;
dm.ADOQ_DL.open;
result:=s;
end;

reconect('SELECT * FROM p_i_dolgnost pid LEFT OUTER JOIN p pt ON pid.id_p=pt.id_p INNER JOIN dolgnost d ON pid.id_dolgnosti=d.id_dolgnosti 
WHERE pid.id_p= :pKey', dm.ADOQ_PACid_p.Value);
то что ты написал проверил все и по нескольку раз и не катит
Код:
function TFD_DOL.reconect(s: string): variant;
begin
result:=s;
DM.ADOQ_DL.Close;
dm.ADOQ_DL.SQL.Clear;
dm.ADOQ_DL.SQL.Add(S);
dm.adoq_dl.parameters.parambyname('idp').value:=dm.ADOQ_PACid_p.Value;
dm.ADOQ_DL.open;
end;

reconect('SELECT * FROM p_i_dolgnost pid LEFT OUTER JOIN p pt ON pid.id_p=pt.id_p INNER JOIN dolgnost d ON pid.id_dolgnosti=d.id_dolgnosti 
WHERE pid.id_p=:idp;');
а так все работает )
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C++] Программа-справочник, Функция удаления записи из файла umnik90 Общие вопросы C/C++ 1 11.06.2009 16:07
поиск записи после обновления smoky Microsoft Office Access 1 12.05.2009 00:20
Ошибка обновления... SanPol БД в Delphi 1 27.08.2008 11:43
Обновления в блоге Fainder О форуме и сайтах клуба 4 05.06.2008 19:31
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50