Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2009, 12:18   #1
Абдуллаев Рустам
Пользователь
 
Регистрация: 01.05.2009
Сообщений: 37
Восклицание Создание представлений в приложении

Привет всем!Прошу вас посмотреть мой вопрос.
А зак-ся он в следующем.
Мне нужно создавать в приложении представления.
Причем имена представленийй должны меняться. То есть
они берутся изcombobox.Пробовал сделать через adoquery,
как параметрический запрос
Код:
create view :sdff
as
select from users
where us_id=:s1
на кнопку событие:

with adoquery19 do
begin
close;
parameters.ParamValues['sdff']:=combobox7.Text;
parameters.ParamValues['s1']:=101;
open;
end;
Adoquery19.Active:=true;

Ругается на неправильный синтаксис.
пробовал и вот так через storedproc.Тоже синтаксис не тот.
Код:
CREATE PROCEDURE createview1(
@nameview char(20),
@parameter char(20)
)
as
create view @nameview
as
select surname_us from users
where @parameter=name_us
go
т.е мне нужно предусмотреть в программе создание представлений.
Причем имя представления выбиралось в программе, через параметр. Возможно ли это?
mol4ok
Абдуллаев Рустам вне форума Ответить с цитированием
Старый 07.05.2009, 13:09   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

вот так будет
Код:
const
C_SQL_view = '
create view %s
as
select * 
from users
where us_id=:s1';

на кнопку событие:

with adoquery19 do
begin
close;
SQL.Text:=format(C_SQL_view, [combobox7.Text]);
parameters.ParamValues['s1']:=101;
open;
end;
Adoquery19.Active:=true;

Последний раз редактировалось soleil@mmc; 07.05.2009 в 13:27.
soleil@mmc вне форума Ответить с цитированием
Старый 07.05.2009, 13:32   #3
Абдуллаев Рустам
Пользователь
 
Регистрация: 01.05.2009
Сообщений: 37
По умолчанию

Спасибо большое. А константа прописывается как обычная константа в Delphi?
mol4ok
Абдуллаев Рустам вне форума Ответить с цитированием
Старый 09.05.2009, 22:01   #4
Абдуллаев Рустам
Пользователь
 
Регистрация: 01.05.2009
Сообщений: 37
По умолчанию

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
вот так будет
Код:
const
C_SQL_view = '
create view %s
as
select * 
from users
where us_id=:s1';

на кнопку событие:

with adoquery19 do
begin
close;
SQL.Text:=format(C_SQL_view, [combobox7.Text]);
parameters.ParamValues['s1']:=101;
open;
end;
Adoquery19.Active:=true;
Поправлю вас немного, в смысле синтаксиса
Код:

C_SQL_view:= 'CREATE view %s AS select name_obj, inv_num, quantity from passport where name_cab='+chr(39)+combobox7.text+chr(39);
with adoquery19 do
begin
SQL.Text:=format(C_SQL_view,[Label18.caption]);
end;
Adoquery19.ExecSQL;
mol4ok
Абдуллаев Рустам вне форума Ответить с цитированием
Старый 09.05.2009, 23:40   #5
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от Абдуллаев Рустам Посмотреть сообщение
Поправлю вас немного, в смысле синтаксиса
Код:

C_SQL_view:= 'CREATE view %s AS select name_obj, inv_num, quantity from passport where name_cab='+chr(39)+combobox7.text+chr(39);
with adoquery19 do
begin
SQL.Text:=format(C_SQL_view,[Label18.caption]);
end;
Adoquery19.ExecSQL;
во-первых, запрос из стартовго топика не соответствует приведенному тобой - так что это ты правишь себя
во-вторых, параметры для того и придуманы чтобы не париться с кавычками

кагбэ желаю тебе успехов в расстановке кавычек, например, в таком запросе
Код:
select *
from invoice_items
where 0=0
  and invoice_date < to_date('20.04.2009', 'DD.MM.YYYY')+1
  and invoice_date >= to_date('10.04.2009', 'DD.MM.YYYY')
soleil@mmc вне форума Ответить с цитированием
Старый 10.05.2009, 01:01   #6
Абдуллаев Рустам
Пользователь
 
Регистрация: 01.05.2009
Сообщений: 37
По умолчанию

С первым пунктом согласен.
Насчет второго- хотел через параметы - не получилось
И, конечно, извините за такое, сначала просто то что вы написали не компилировалось и с параметрами не выходило, я переправил - и доисправлялся, что вообще по-другому все. Тперь и перв-й ваш код работает. Я разобрался. Спасибо большое.
А насчет вашего запроса - не вижу логики, особенно где 0=0. Да с кавычками - это то еще парево.
mol4ok
Абдуллаев Рустам вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в приложении Word lan-lan Microsoft Office Word 6 12.01.2009 12:30
Звук в приложении Артэс Win Api 1 31.05.2008 20:52
музончик в приложении krem Общие вопросы Delphi 1 25.07.2007 14:53
Создание пиксельной сетки в MDI приложении shkiper Общие вопросы Delphi 5 06.06.2007 18:56