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

Вниз

Как создать "живой" 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.007 c
15-1204077242
Fon
2008-02-27 04:54
2008.04.13
Как заранее проверить влезет текст в TMemo или выдаст ошибку?


2-1205626460
alert2006
2008-03-16 03:14
2008.04.13
Заменить в файле


15-1204204156
dr_creigan
2008-02-28 16:09
2008.04.13
DDK XP


15-1204081129
Slider007
2008-02-27 05:58
2008.04.13
С днем рождения ! 27 февраля 2008 среда


15-1204398665
TIF
2008-03-01 22:11
2008.04.13
Canvas у... TWebBrowser





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский