Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.013 c
4-1113551470
Ola
2005-04-15 11:51
2005.06.06
Подскажите новичку где почитать про потоки: создание и работа...


14-1116563040
_Nobody_
2005-05-20 08:24
2005.06.06
О чувствах...


1-1116907764
КиТаЯц
2005-05-24 08:09
2005.06.06
notepad (Блокнот ) и Utf8


4-1113325359
DeScriptor
2005-04-12 21:02
2005.06.06
Выбор одной из одинаковых компонент


6-1107518050
JaoDa
2005-02-04 14:54
2005.06.06
Сниффер





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский