Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.06;
Скачать: CL | DM;

Вниз

ADOQuery1.SQL.Add Update редактирование данных   Найти похожие ветки 

 
Drakon ©   (2005-04-26 14:05) [0]

По запросу в Edit1....Edit10 отборажаются данные из базы данных *mdb.

Хочу отредактировать данные данной записи в Edit1....Edit10.

По запросу:
Form4.ADOQuery1.SQL.Add("Update DB set FIO="""+Edit1.Text+""",...,TEL="""+Edit10.Text+""" where FIO=FIO");

Происходит редактирование всех записей в базе в поле FIO, а не именно этой.
Подскажите.


 
Lexer ©   (2005-04-26 14:15) [1]

> +""" where FIO=FIO");

естественно будут меняться ВСЕ записи, попробуй так:
""" where FIO="+"""+oldFIO+""")
где oldFIO - значение поля ФАМИЛИЯ текущей записи


 
sniknik ©   (2005-04-26 14:16) [2]

WHERE ID={значение ключа для записи подлежащей обновлению}
если ключа нет, советую добавить.

либо при твоей записи
... where FIO=:FIO");
ADOQuery1.Parameters.ParamByName("FIO").Value:= Edit??.Text;


 
Megabyte ©   (2005-04-26 14:20) [3]

Что подсказать? Честно говоря, вопрос сформулирован через одно место...
Тебе надо отредактировать одну конкретную запись, а у тебя редактируются все записи с FIO = "FIO"?
Так ты сам же в условии "Where" так поставил. Добавь критерии.

з.ы. И вообще какое-то извращенное редактирование. Имхо проще через DBEdit делать.


 
Drakon ©   (2005-04-26 14:23) [4]

> Lexer ©  
""" where FIO="+"""+oldFIO+""")

Не редактирует вообще.


 
Lexer ©   (2005-04-26 14:24) [5]


> [3] Megabyte ©   (26.04.05 14:20)
> Тебе надо отредактировать одну конкретную запись, а у тебя
> редактируются все записи с FIO = "FIO"?


у него редактируются абсолютно ВСЕ записи


 
Lexer ©   (2005-04-26 14:26) [6]


> Не редактирует вообще.


а чему у тебя oldFIO равен?


 
Drakon ©   (2005-04-26 14:37) [7]

Как именно отредактировать данные одной записи базы данных например в поле "FIO", "TEl"? У меня редактируются сразу ВСЕ записи.

Как добавить критерии?


 
Lexer ©   (2005-04-26 14:45) [8]

посмотри вот здесь

> [2] sniknik ©   (26.04.05 14:16)
> WHERE ID={значение ключа для записи подлежащей обновлению}
> если ключа нет, советую добавить.

поиск делается по ключевым (оригинальным во всей таблице) полям, тебе лучше добавить в таблицу поле ID


 
Sergey13 ©   (2005-04-26 14:46) [9]

2[7] Drakon ©   (26.04.05 14:37)
>Как добавить критерии?

В where FIO=FIO измени правую часть равенства на те условия которые нужны. Перед редактированием записи запомни текущее значение, а перед выполнением запроса подставь его вместо правой части.

ЗЫ: Отвратительный способ изменять по ФИО. Неужели никакого кода нет?


 
Drakon ©   (2005-04-26 14:51) [10]

> Megabyte ©   (26.04.05 14:20) [3]
Что подсказать? Честно говоря, вопрос сформулирован через одно место...

Постараюсь сформулировать по другому:

На форме лежит Edit1...Edit10, DBGrid, ADOConnection, ADOQuery, DataSourse.

При EditChange выполняется запрос, согласно критерию запроса в DBGrid выводятся записи.

При DBGridDblClick:
Edit1.text:=ADOQuery1.Fields.FindField("FIO").AsString;
.......
Edit10.text:=ADOQuery1.Fields.FindField("TEL").AsString;

Теперь я хочу отредактировать данные которые в Edit1...Edit10 для текущей записи.

При ButtonClick:
Form4.ADOQuery1.Close;
Form4.ADOQuery1.SQL.Clear;                                      
Form4.ADOQuery1.SQL.Add("Update Сотрудники set FIO="""+ Edit1.Text+""",...,TEL=""" + Edit10.Text + """ where FIO=FIO");
Form4.ADOQuery1.ExecSQL;

Как написать критерии для WHERE для редактирования именно текущей записи?


 
Lexer ©   (2005-04-26 15:05) [11]

какие поля у тебя выводит запрос?


 
Sergey13 ©   (2005-04-26 15:09) [12]

2[10] Drakon ©   (26.04.05 14:51)
Ну и мешанина! 8-(


 
Drakon ©   (2005-04-26 15:12) [13]

Если ID это "идентификационный номер" записи в базе данных.
Нужно: where id=id текущей записи
Так вот и вопрос: как определить id текущей записи


 
Lexer ©   (2005-04-26 15:14) [14]


>  [13] Drakon ©   (26.04.05 15:12)
> Так вот и вопрос: как определить id текущей записи


)))))
не мы тебя все-таки расколим....
у тебя запрос должен получать ид записи!


 
Drakon ©   (2005-04-26 15:16) [15]

Короче добавил я Edit11 где
Edit12.text:=ADOQuery1.Fields.FindField("ID").AsString;

Сам запрос

Form4.ADOQuery1.Close;
Form4.ADOQuery1.SQL.Clear;                                      
Form4.ADOQuery1.SQL.Add("Update Сотрудники set FIO="""+ Edit1.Text+""",...,TEL=""" + Edit10.Text + """ where ID=+Form4.Edit12.Text+"");
Form4.ADOQuery1.ExecSQL;

Теперь работает :)

>Sergey13 ©   (26.04.05 15:09) [12]
>2[10] Drakon ©   (26.04.05 14:51)
>Ну и мешанина! 8-(

Ну что сделаешь... Учимся.

А можно как то на ID сослаться по другому?


 
Drakon ©   (2005-04-26 15:20) [16]

"Короче добавил я Edit11 где"
опечатка, следует читать: "Короче добавил я Edit12 где"


 
Sergey13 ©   (2005-04-26 15:24) [17]

2[15] Drakon ©   (26.04.05 15:16)
>Ну что сделаешь... Учимся.
Странное у тебя учебное пособие наверное.

>А можно как то на ID сослаться по другому?
Кроме Edit-ов есть например еще и DBEdit-ы.

ЗЫ: Не экономь на компонентах на форме. Использовать один кверик и на чтение и на запись как то не того, ИМХО. Запутаешься сам.


 
Drakon ©   (2005-04-26 15:30) [18]

Всем спасибо за внимание!


 
Anatoly Podgoretsky ©   (2005-04-26 16:06) [19]

Пожалуйста и тебе спасибо, скрасил наши серые будни.


 
Соловьев ©   (2005-04-26 18:33) [20]


> Сам запрос
>
> Form4.ADOQuery1.Close;
> Form4.ADOQuery1.SQL.Clear;                              
>          
> Form4.ADOQuery1.SQL.Add("Update Сотрудники set FIO="""+
> Edit1.Text+""",...,TEL=""" + Edit10.Text + """ where ID=+Form4.Edit12.Text+"");
> Form4.ADOQuery1.ExecSQL;
>
> Теперь работает :)

А теперь внеси ДА"ртаньяна :)



Страницы: 1 вся ветка

Текущий архив: 2005.06.06;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.029 c
4-1113437294
Hecker
2005-04-14 04:08
2005.06.06
Подскажите как отследить ПЕЧАТЬ из любой программы в Винде?


4-1113889016
Ola
2005-04-19 09:36
2005.06.06
Как программно перезапустить винду?


14-1116522957
YurikGL
2005-05-19 21:15
2005.06.06
Где убыточность?


9-1110138865
MsShtaer
2005-03-06 22:54
2005.06.06
Deferred Shading


14-1116441712
AlterEgo of WondeRu
2005-05-18 22:41
2005.06.06
Есть ли прибамбас - ТуллбарКнопка для IE