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

Вниз

Как создать "живой" SQL запрос?   Найти похожие ветки 

 
MegaPiha ©   (2008-03-12 20:32) [0]

Мне нужно, чтобы получаемую путем SQL запроса таблицу можно было редактировать. Т.е. не редактировать в карточках (как обычно делается в БД) а непосредственно таблицу. Я использую ADOQuery. Таким образом получаю только выборку из БД, которую редактировать нельзя. Если использовать компонент ADOTable и выборку используя фильтры и lookup поля, то это очень долго.


 
uniken1 ©   (2008-03-12 21:03) [1]

Может попробовать использовать запросы Insert и Update?


 
Johnmen ©   (2008-03-12 21:30) [2]

А ещё есть такой класс, как TADODataSet, например...


 
Германн ©   (2008-03-13 01:40) [3]


> MegaPiha ©   (12.03.08 20:32)
>
> Мне нужно, чтобы получаемую путем SQL запроса таблицу можно
> было редактировать. Т.е. не редактировать в карточках (как
> обычно делается в БД) а непосредственно таблицу.

В вопросе два слова "таблица". какую из них нужно редактировать?
В вопросе упоминается слово "карточках". Что имеется в виду?


 
Германн ©   (2008-03-13 01:49) [4]


> Johnmen ©   (12.03.08 21:30) [2]
>
>

Да. И ещё класс TADOCommand. Помню святые заповеди Николая (очень чешется "схохмить" насчёт его ника, но обещал АП больше не поминать его ошибку :) и использую их соответственно.
Но к сабжу это какое отношение имеет, кроме упрека в использовании ADOQuery и ADOTable?


 
Simpson   (2008-03-13 06:58) [5]

Результат Select"а ты напрямую не сможеш редактировать, для манипуляция данными используются запросы Insert, Update,Delete.


 
Johnmen ©   (2008-03-13 09:06) [6]


> Германн ©   (13.03.08 01:49) [4]

Никакого :)

> Simpson   (13.03.08 06:58) [5]

Не болтайте ерундой (с)


 
Simpson   (2008-03-13 09:20) [7]

Johnmen ©   (13.03.08 09:06) [6]

Можно? Как?


 
Johnmen ©   (2008-03-13 09:29) [8]


> Simpson   (13.03.08 09:20) [7]
> Можно? Как?

TADOQuery+F1, методы Edit, Insert, Delete, Post.


 
Simpson   (2008-03-13 11:26) [9]

Johnmen ©   (13.03.08 09:29) [8]
Действительно, век живи век живи, как поступят эти методы при выборе из view?
Эти методы как нибудь относяться к SQL?
А используют ли эти методы запросы DML?


 
Johnmen ©   (2008-03-13 11:41) [10]


> Simpson   (13.03.08 11:26) [9]

1. Про вью автор ветки что-то говорил? Нет. Но если тебе интересно, можешь попробовать.
2. Отношение этих методов к SQL как-то относится к теме ветки?
3. Что значит "используют"?

ЗЫ
Обращаю внимание на

  Simpson   (13.03.08 06:58) [5]
  Результат Select"а ты напрямую не сможеш редактировать
 
  Johnmen ©   (13.03.08 09:06) [6]
  Не болтайте ерундой (с)

  Simpson   (13.03.08 09:20) [7]
  Можно? Как?

  Johnmen ©   (13.03.08 09:29) [8]
  TADOQuery+F1, методы Edit, Insert, Delete, Post.

Тебя здесь что-то смущает? Или здесь что-то неверно?


 
MegaPiha ©   (2008-03-13 20:30) [11]

Постараюсь по порядку.
> uniken1 ©   (12.03.08 21:03) [1]
> Может попробовать использовать запросы Insert и Update?

Не понимаю как это можно реализовать. :/  Может приведешь какой нибудь простенький пример?  

> Johnmen ©   (12.03.08 21:30) [2]
> А ещё есть такой класс, как TADODataSet, например...

А как им пользоваться? У меня и куча книг и нигде не могу найти конкретно как это делается.

> Германн ©   (13.03.08 01:40) [3]
> В вопросе два слова "таблица". какую из них нужно редактировать?
> В вопросе упоминается слово "карточках". Что имеется в виду?
Я делаю запрос, с соединением семи таблиц. Хочу редактировать результат выборки и при этом чтобы в этих таблицах автоматически вносились соответствующие изменения.


 
Simpson   (2008-03-13 22:10) [12]

MegaPiha ©   (13.03.08 20:30) [11]
Напиши хранимую процедуру с БД.

Поищи книгу Мартина Грубера про SQL она в сети есть у тебя траблы с SQL  в первую очередь, а не с ADO.


 
Игорь Шевченко ©   (2008-03-14 00:19) [13]


> Я делаю запрос, с соединением семи таблиц. Хочу редактировать
> результат выборки и при этом чтобы в этих таблицах автоматически
> вносились соответствующие изменения.


Что, во все семь ?


 
Германн ©   (2008-03-14 01:23) [14]


> MegaPiha ©   (13.03.08 20:30) [11]
>
> > Германн ©   (13.03.08 01:40) [3]
> > В вопросе два слова "таблица". какую из них нужно редактировать?
>
> > В вопросе упоминается слово "карточках". Что имеется в
> виду?
> Я делаю запрос, с соединением семи таблиц. Хочу редактировать
> результат выборки и при этом чтобы в этих таблицах автоматически
> вносились соответствующие изменения.
>

Это не BDE. Тут очень многое работает иначе. Автоматы тут не приветствуются.


 
MegaPiha ©   (2008-03-14 19:08) [15]

> Simpson   (13.03.08 22:10) [12]

>MegaPiha ©   (13.03.08 20:30) [11]
>Напиши хранимую процедуру с БД.
Дико извиняюсь. Что значит хранимую процедуру? Сам запрос SQL? Если так то вот он.
With DataModule1.MainQ_poisk do begin
         Close;
         SQL.Clear;
         SQL.Add("SELECT main.id, tip.tip, name.name, main.nomer, main.datavyp, main.dataeks, ");
         SQL.Add("raion.raion_name, podrazd.podr_name, main.place, main.protspis, ");
         SQL.Add("main.dataspis, main.inputdate, main.notes, main.utrata, main.spisan, main.invNomer, ");
         SQL.Add("main.dataobnovl, main.osnovanie");
         SQL.Add("FROM main,tip,name,podrazd, raion ");
         SQL.Add("WHERE main.tip_id = tip.tip_id ");
         SQL.Add("AND name.tip_id = tip.tip_id ");
         SQL.Add("AND main.name_id = name.name_id ");
         SQL.Add("AND podrazd.podr_id = main.podrazd_id ");
         SQL.Add("AND raion.raion_id = main.raion_id ");
А потом всякие дополнительные условия...

>Поищи книгу Мартина Грубера про SQL она в сети есть у тебя траблы с SQL  в >первую очередь, а не с ADO.

Спасибо. Скачал книгу. Начну изучать.


>
> Игорь Шевченко ©   (14.03.08 00:19) [13]
>
> Что, во все семь ?



Вообще то в одну, главную. Остальные - справочники.


> Германн ©   (14.03.08 01:23) [14]
>
>
> > MegaPiha ©   (13.03.08 20:30) [11]
> >
> > > Германн ©   (13.03.08 01:40) [3]
> > > В вопросе два слова "таблица". какую из них нужно редактировать?
>
> >
> > > В вопросе упоминается слово "карточках". Что имеется
> в
> > виду?
> > Я делаю запрос, с соединением семи таблиц. Хочу редактировать
> > результат выборки и при этом чтобы в этих таблицах автоматически
> > вносились соответствующие изменения.
> >
>
> Это не BDE. Тут очень многое работает иначе. Автоматы тут
> не приветствуются.
>


Так как же мне быть? Переходить на BDE?


 
Игорь Шевченко ©   (2008-03-14 21:21) [16]

MegaPiha ©   (14.03.08 19:08) [15]


> Вообще то в одну, главную. Остальные - справочники.


Грешным делом, ADO не знаю и дел с ним не имею, но что-нибудь вроде UpdateObject у него есть ? (нехай меня местные знатоки поправят), так, чтобы при выполнении методов Insert, Edit, Delete и Post вызывался специально написанный SQL ?


 
Johnmen ©   (2008-03-14 22:56) [17]


> MegaPiha ©   (14.03.08 19:08) [15]
> Вообще то в одну, главную. Остальные - справочники.


... есть такой способ - динамическое
свойство - "Unique Table"
(с) http://www.delphikingdom.com/asp/viewitem.asp?catalogid=420&mode=print
читать всю статью :)


 
MsGuns ©   (2008-03-15 20:28) [18]

>Игорь Шевченко ©   (14.03.08 21:21) [16]
>Грешным делом, ADO не знаю и дел с ним не имею

Бог простит ;)


 
MegaPiha ©   (2008-03-16 19:02) [19]


> Johnmen ©   (14.03.08 22:56) [17]
>
>
> > MegaPiha ©   (14.03.08 19:08) [15]
> > Вообще то в одну, главную. Остальные - справочники.
>
>
> ... есть такой способ - динамическое
> свойство - "Unique Table" (с) http://www.delphikingdom.com/asp/viewitem.
> asp?catalogid=420&mode=print
> читать всю статью :)


Похоже то что надо!! Попробую использовать. Спасибо.


 
uniken1 ©   (2008-03-16 22:13) [20]


> Не понимаю как это можно реализовать. :/  Может приведешь
> какой нибудь простенький пример?

Например
update Table1 set Field1=:Param1, Field3=:Param2 where Field_ID=:Param3
Делее варианты, параметры или собственный конструктор запросов по желанию. В качестве условия лучше искользовать ключевое поле типа Field_ID, его ты сам получаешь в запросе select, а получить для запроса update можно например с помощью FieldByName


 
MegaPiha ©   (2008-03-17 20:02) [21]

Всем огромное спасибо! Особенно Johnmen-у. Все заработало.

Только как всегда, когда, что то получается возникают новые вопросы.
Не умею как следует работать с ADODataSet. Я сделал у себя по аналогии с примером статьи. А как допустим реализовать кнопку "сохранить" или "удалить" работая с ADODataSet. А то навигатор не все задумки позволяет выполнить.


 
Ega23 ©   (2008-03-17 20:55) [22]


> Действительно, век живи век живи, как поступят эти методы
> при выборе из view?


Триггер на View?



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

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

Наверх




Память: 0.53 MB
Время: 0.018 c
15-1203934590
DelphiN!
2008-02-25 13:16
2008.04.13
Инструменты для поиска "утечки" памяти в проекте


2-1205606103
antonn
2008-03-15 21:35
2008.04.13
работа с active directory


15-1204116119
Finder
2008-02-27 15:41
2008.04.13
Веб-клиент IRC


15-1204203653
Pos Eleptant (c)
2008-02-28 16:00
2008.04.13
Подскажите может кто-то сталкивался Column.Field.As<SomeThing>


2-1205874786
deras
2008-03-19 00:13
2008.04.13
SQL запрос - выбрать все дублирующиеся записи.