![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Первые шаги в SQL. HELP!!! HELP!!!HELP!!!
stoper © (2002-11-19 21:15:00)Пишу как казалось бы очень простенькое приложение.Использую MYSQL. У меня есть набор данных использую Query . Я хочу курсорм стать на запись, отредактировать ее , а потом снова очутится в этом наборе на этой записи.Помогите плиз.
3JIA9I CyKA (2002-11-22 12:00:00) [1]Если создавал Fields для своего Query - пересоздай.
stoper (2002-11-22 11:37:00) [2]Sergey13, у меня тип поля varchar(40), при посте у меня дбедит.текст обрезается до 20 символов.
Sergey13 (2002-11-21 09:30:00) [3]2stoper (20.11.02 21:22)
>когда я редактирую в dbedite, то не могу набрать слово нужной длины
?????????????
stoper (2002-11-20 21:22:00) [4]Казалось бы Sergey13 подсказал, но тут у меня другая бочина. когда я редактирую в dbedite, то не могу набрать слово нужной длины. Так что я решил так как набор небольшой после selecta 20 записей пройтись по Query whilom пока не найду подходящего id.
Может всетаки кто чего посоветует.
stoper (2002-11-20 12:15:00) [5]To Sergey13 спасибо за идею.
stoper (2002-11-20 11:54:00) [6]To Anatoly Podgoretsky , я не множко не понял . Если я буду делать изменения в другом Query2 то при открытии первого я же все равно окажусь на первой записи. Или не так понял объясни плиз
Sergey13 (2002-11-20 11:48:00) [7]Ну дык тогда все равно не обязательно запрос переоткрывать. По кнопке показываешь форму с DBEdit-ами нужных полей. В ней по ОК постишь или по Cancel - сответственно.
ЗЫ: Использовать один Query и для выборки и для апдейта не есть гуд, ИМХО.
Anatoly Podgoretsky (2002-11-20 11:43:00) [8]stoper (20.11.02 09:51)
Вне зависимости от другого, проще если вместо одного YQuery использовать два независимых, один для SELECT а другой для UPDATE при этом их можно и динамически связать через параметр ID
Отпадет необходимосьть делать
query1.SQL.Add(zap);
query1.ExecSQL;
query1.SQL.Clear;
query1.SQL.Add("select * from stat where flag=1");
Только query1.close; query1.open;
stoper (2002-11-20 11:42:00) [9]В гриде нельзя так как грид у меня рид онли, что бы случайно кто нибудь не наизменял чего нибудь
Sergey13 (2002-11-20 11:22:00) [10]2stoper (20.11.02 09:51)
А че так сложно то? Что мешает прямо в гриде и исправить? Набор то получается вроде "живучий".
stoper (2002-11-20 11:21:00) [11]Помогите плиз
stoper (2002-11-20 10:41:00) [12]При Query1.Locate("id",MyId,[]); пишет operation not applicable
Наталия (2002-11-20 09:58:00) [13]query1.locate должно работать
KIR (2002-11-20 09:57:00) [14]А почему Locate нельзя?
Query1.Locate("id",MyId,[]); //MyId - тот же id, который ты использовал в свойстве SQL своего запроса первый раз.
stoper (2002-11-20 09:51:00) [15]Я может не совсем правильно понял как это делается.
Я делаю примерно следущее: 1.select * from stat where flag=1
В гриде нахожу нужную запись. Запоминаю id записи.
2. query1.active:=false;
3. делаю изменения.
zap:="update stat set vidd=""+edit1.text+"" where id="+inttostr(id); // zap переменная тип string
query1.SQL.Add(zap);
query1.ExecSQL;
query1.SQL.Clear;
query1.SQL.Add("select * from stat where flag=1");
query1.open;
И становлюсь в начало набора естественно.
Я так понял что поиска подобного setkey или locate здесь применять нельзя.Как мне быть .Подскажите где ошибка .
Reindeer Moss Eater (2002-11-20 09:11:00) [16]Если встать курсором на запись, отредактировать её, и больше ничего не делать, то как раз очутишся на этом же самом наборе данных и на этой же самой записи.
Victor_Cr (2002-11-20 09:09:00) [17]Поподробнее...