Форум: "Базы";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];
ВнизПервые шаги в SQL. HELP!!! HELP!!!HELP!!! Найти похожие ветки
← →
stoper (2002-11-19 21:15) [0]Пишу как казалось бы очень простенькое приложение.Использую MYSQL. У меня есть набор данных использую Query . Я хочу курсорм стать на запись, отредактировать ее , а потом снова очутится в этом наборе на этой записи.Помогите плиз.
← →
Victor_Cr (2002-11-20 09:09) [1]Поподробнее...
← →
Reindeer Moss Eater (2002-11-20 09:11) [2]Если встать курсором на запись, отредактировать её, и больше ничего не делать, то как раз очутишся на этом же самом наборе данных и на этой же самой записи.
← →
stoper (2002-11-20 09:51) [3]Я может не совсем правильно понял как это делается.
Я делаю примерно следущее: 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 здесь применять нельзя.Как мне быть .Подскажите где ошибка .
← →
KIR (2002-11-20 09:57) [4]А почему Locate нельзя?
Query1.Locate("id",MyId,[]); //MyId - тот же id, который ты использовал в свойстве SQL своего запроса первый раз.
← →
Наталия (2002-11-20 09:58) [5]query1.locate должно работать
← →
stoper (2002-11-20 10:41) [6]При Query1.Locate("id",MyId,[]); пишет operation not applicable
← →
stoper (2002-11-20 11:21) [7]Помогите плиз
← →
Sergey13 (2002-11-20 11:22) [8]2stoper (20.11.02 09:51)
А че так сложно то? Что мешает прямо в гриде и исправить? Набор то получается вроде "живучий".
← →
stoper (2002-11-20 11:42) [9]В гриде нельзя так как грид у меня рид онли, что бы случайно кто нибудь не наизменял чего нибудь
← →
Anatoly Podgoretsky (2002-11-20 11:43) [10]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;
← →
Sergey13 (2002-11-20 11:48) [11]Ну дык тогда все равно не обязательно запрос переоткрывать. По кнопке показываешь форму с DBEdit-ами нужных полей. В ней по ОК постишь или по Cancel - сответственно.
ЗЫ: Использовать один Query и для выборки и для апдейта не есть гуд, ИМХО.
← →
stoper (2002-11-20 11:54) [12]To Anatoly Podgoretsky , я не множко не понял . Если я буду делать изменения в другом Query2 то при открытии первого я же все равно окажусь на первой записи. Или не так понял объясни плиз
← →
stoper (2002-11-20 12:15) [13]To Sergey13 спасибо за идею.
← →
stoper (2002-11-20 21:22) [14]Казалось бы Sergey13 подсказал, но тут у меня другая бочина. когда я редактирую в dbedite, то не могу набрать слово нужной длины. Так что я решил так как набор небольшой после selecta 20 записей пройтись по Query whilom пока не найду подходящего id.
Может всетаки кто чего посоветует.
← →
Sergey13 (2002-11-21 09:30) [15]2stoper (20.11.02 21:22)
>когда я редактирую в dbedite, то не могу набрать слово нужной длины
?????????????
← →
stoper (2002-11-22 11:37) [16]Sergey13, у меня тип поля varchar(40), при посте у меня дбедит.текст обрезается до 20 символов.
← →
3JIA9I CyKA (2002-11-22 12:00) [17]Если создавал Fields для своего Query - пересоздай.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c