Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Первые шаги в 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]

Поподробнее...


Наверх

Титульная страница Поиск, карта сайта Написать письмо