Найдено 39 результатов
- Чт 16 апр 2015 20:20
- Форум: SQL Server Data Access Components
- Тема: Требование на смену пароля
- Ответы: 3
- Просмотры: 14420
Re: Требование на смену пароля
Андрей, спасибо! попробую...
- Ср 08 апр 2015 19:39
- Форум: SQL Server Data Access Components
- Тема: Требование на смену пароля
- Ответы: 3
- Просмотры: 14420
Требование на смену пароля
Добрый день!
Подскажите, через компонент Connection можно реализовать требование о смене пароля при следующем заходе?
Скажем, человек вводит логин и пароль, пытается авторизоваться, а с сервера приходит требование о смене пароля, как то так.
Возможно ли такое?
Подскажите, через компонент Connection можно реализовать требование о смене пароля при следующем заходе?
Скажем, человек вводит логин и пароль, пытается авторизоваться, а с сервера приходит требование о смене пароля, как то так.
Возможно ли такое?
- Вт 17 мар 2015 20:41
- Форум: SQL Server Data Access Components
- Тема: OpenNext
- Ответы: 1
- Просмотры: 15357
OpenNext
Добрый вечер!
у компонента TMSQuery есть метод OpenNext. Скажите, если я использую мультизапрос, я могу "достать" следующий набор данных только 1 раз?
В процессе работы я могу переключаться между наборами данных?
у компонента TMSQuery есть метод OpenNext. Скажите, если я использую мультизапрос, я могу "достать" следующий набор данных только 1 раз?
В процессе работы я могу переключаться между наборами данных?
- Пн 23 июн 2014 14:13
- Форум: SQL Server Data Access Components
- Тема: VirtualTable портит макросы!
- Ответы: 5
- Просмотры: 6963
Re: VirtualTable портит макросы!
Все, проблема разрешилась.
Адресс не мог прочитать, не Ваш компонент, другой. Т.ч. пришлось присвоение макросам взять в try finally и внутри организовать DisableControl/EnableControl, и еще в некоторых местах проверять на существование и все заработало.
То, что ошибка вылетала во время трассировки на обращении к макросу связано с тем, что при присвоении макрасу значениия, датасет закрывается, а у меня в событии AfterClose происходит еще куча действий, вызывающие другие действи, и эта ошибка пряталась где-то в глубине. Наткнулся же совершенно случайно.
Спасибо за помощь.
Адресс не мог прочитать, не Ваш компонент, другой. Т.ч. пришлось присвоение макросам взять в try finally и внутри организовать DisableControl/EnableControl, и еще в некоторых местах проверять на существование и все заработало.
То, что ошибка вылетала во время трассировки на обращении к макросу связано с тем, что при присвоении макрасу значениия, датасет закрывается, а у меня в событии AfterClose происходит еще куча действий, вызывающие другие действи, и эта ошибка пряталась где-то в глубине. Наткнулся же совершенно случайно.
Спасибо за помощь.
- Чт 19 июн 2014 12:28
- Форум: SQL Server Data Access Components
- Тема: VirtualTable портит макросы!
- Ответы: 5
- Просмотры: 6963
Re: VirtualTable портит макросы!
Я запустил ваш пример, все сработало. решил сделать как у меня чтобы в VirtualTable копировалось в событии AfterOpen, но тоже выдает OK.
Но стоит раскомментировать две эти строчки и в момент изменения макроса приложение вылетает.
Но стоит раскомментировать две эти строчки и в момент изменения макроса приложение вылетает.
- Ср 18 июн 2014 14:09
- Форум: SQL Server Data Access Components
- Тема: VirtualTable портит макросы!
- Ответы: 5
- Просмотры: 6963
VirtualTable портит макросы!
Добрый день!
использую такую конструкцию
при далнейшем обращении к макросам в коде вылетает ошибка о невозможности прочесть память по такому-то адресу.
Если закомментировать строчки с VirtualTable, то работоспособность восстанавливается, но при это завязанная на использовании VirtualTable функциональность пропадает.
использую такую конструкцию
Код: Выделить всё
procedure TmodData.QslImportDevAfterOpen(DataSet: TDataSet);
begin
DataSet.Fields.FieldByName('fdFlag').ReadOnly := false;
DataSet.Fields.FieldByName('REF_TYPE').ReadOnly := false;
DataSet.Fields.FieldByName('REF_CONTROL').ReadOnly := false;
QslListType.Open;
TslListMesta.Open;
VirtualTable.Assign(DataSet);
VirtualTable.Active := true;
end;
Если закомментировать строчки с VirtualTable, то работоспособность восстанавливается, но при это завязанная на использовании VirtualTable функциональность пропадает.
- Пн 07 апр 2014 11:36
- Форум: SQL Server Data Access Components
- Тема: Возвращение ID при вставке
- Ответы: 12
- Просмотры: 15777
Re: Возвращение ID при вставке
Ok, получается что, если вставку/обновление осущиствить в стороннем компоненте, то основной датасет останится в состоянии вставки/обновления. Как сделать грамотно, чтобы он вышел из этого состояния и обновил даные/обновленную строчку, т.е. сымитировать свойство RefreshOptions = [roAfterInsert, roAfterUpdate]?
- Сб 05 апр 2014 19:11
- Форум: SQL Server Data Access Components
- Тема: Возвращение ID при вставке
- Ответы: 12
- Просмотры: 15777
Re: Возвращение ID при вставке
Вот таблица:
это ее триггер:
На самом деле я еще раз взглянул на то что получается в MSSMS и поня что это не результат действий OUTPUT, а результат работу выражения
в конце триггера. И он выглядит как результат работы запроса, т.е. MSSMS отображает возвращаемые данные оператором SELECT.
Раз MSSMS может работать с возвращенными данными, может есть возможность то, что возвращается вернуть и в TMSQuery???
Код: Выделить всё
CREATE TABLE dbo.LISTVOLUME (
ID_LISTVOLUME int IDENTITY,
NAME varchar(510) NOT NULL,
PAGE int NOT NULL,
TYPEPAGE int NULL,
NOTICE varchar(255) NULL,
REF_REV int NOT NULL,
CONSTRAINT PK_LISTVOLUME PRIMARY KEY (ID_LISTVOLUME),
CONSTRAINT KEY_LISTVOLUME UNIQUE (REF_REV, PAGE),
CONSTRAINT FK_LISTVOLUME_1 FOREIGN KEY (REF_REV) REFERENCES dbo.REVISIONS (ID_REVISIONS),
CONSTRAINT FK_LISTVOLUME_2 FOREIGN KEY (TYPEPAGE) REFERENCES dbo.TYPEPAGE (ID_PAGE_TYP)
) ON Data
Код: Выделить всё
CREATE TRIGGER trListVolume_Insert
ON dbo.[LISTVOLUME] WITH EXECUTE AS CALLER
INSTEAD OF INSERT
AS
BEGIN
DECLARE @MPage int;
SET NOCOUNT ON;
SELECT @MPage = ISNULL(MAX(l.PAGE), 1)
FROM LISTVOLUME l, INSERTED i
WHERE i.REF_REV = l.REF_REV
INSERT INTO LISTVOLUME (NAME, PAGE, TYPEPAGE, NOTICE, REF_REV)
SELECT i.NAME,
@MPage + ROW_NUMBER() OVER (ORDER BY i.PAGE),
i.TYPEPAGE,
i.NOTICE,
i.REF_REV
FROM INSERTED i;
SELECT SCOPE_IDENTITY();
END
Код: Выделить всё
SELECT SCOPE_IDENTITY();
Раз MSSMS может работать с возвращенными данными, может есть возможность то, что возвращается вернуть и в TMSQuery???
- Чт 03 апр 2014 16:12
- Форум: SQL Server Data Access Components
- Тема: Возвращение ID при вставке
- Ответы: 12
- Просмотры: 15777
Re: Возвращение ID при вставке
у меня стоит это в инспекторе объектов, не программно...
сейчас еще раз сделал запрос в MSSMS
P.S. у меня sdac 6.7.13
результат возвращает
сейчас еще раз сделал запрос в MSSMS
Код: Выделить всё
DECLARE @Return TABLE (
ID int
);
INSERT INTO LISTVOLUME ( NAME, TYPEPAGE, NOTICE, REF_REV)
OUTPUT INSERTED.ID_LISTVOLUME INTO @Return
VALUES ('Тест', NULL, NULL, 117);
SELECT ID FROM @Return
результат возвращает
- Чт 03 апр 2014 14:54
- Форум: SQL Server Data Access Components
- Тема: Возвращение ID при вставке
- Ответы: 12
- Просмотры: 15777
Re: Возвращение ID при вставке
к сожалению это не помогло возвращается 0 и соответсвенно не работает Refresh после вставки.Alexp писал(а):Код: Выделить всё
procedure TForm1.MSQuery1BeforeUpdateExecute(Sender: TCustomMSDataSet; StatementTypes: TStatementTypes; Params: TMSParams); begin Params.ParamByName('ID_LISTVOLUME').ParamType := ptOutput; end;
- Ср 02 апр 2014 08:30
- Форум: SQL Server Data Access Components
- Тема: Возвращение ID при вставке
- Ответы: 12
- Просмотры: 15777
Re: Возвращение ID при вставке
На просторах интернета, я нашел как решить проблему
http://wiki.alphasoftware.com/Scope_Ide ... F+triggers
Правда она позволяет только в инструкции OUTPUT получить значение не равное NULL. Scope_Identity продолжает возвращать NULL.
Но когда я делаю такой запрос
в студии (предварительно подправив синтаксис и вставив реальные значения) то результат возвращается, а TMSQuery возвращается 0?
http://wiki.alphasoftware.com/Scope_Ide ... F+triggers
Правда она позволяет только в инструкции OUTPUT получить значение не равное NULL. Scope_Identity продолжает возвращать NULL.
Но когда я делаю такой запрос
Код: Выделить всё
DECLARE @Return TABLE (id int);
INSERT INTO LISTVOLUME (NAME, NOTICE, REF_REV)
OUTPUT INSERTED.ID_LISTVOLUME INTO @Return
VALUES (:Name, :NOTICE, :ID_REVISIONS);
SELECT :ID_LISTVOLUME = id FROM @Return;
- Вт 01 апр 2014 19:44
- Форум: SQL Server Data Access Components
- Тема: Представление и TMSQuery
- Ответы: 1
- Просмотры: 3537
Представление и TMSQuery
Добрый день!!
у меня есть представление из нескольких таблиц. У этого представления написаны триггеры instead of INSERT, DELETE, UPDATE.
Во время проектирования у свойства UpdateTable есть возможность выбрать как любую таблицу из этого представления, так и само представление.
Так вот когда выбираешь какую либо таблицу, то появляется возможность редактировать (run-time) только поля этой таблицы. Если выбрать представление, то весь датасет в ReadOnly.
Проблему можно решить только явно создав поля в датасете? и там задав у свойства ReadOnly = false????
или еще как-то можно?
P.S. А то не хочется создавать столько полей...
у меня есть представление из нескольких таблиц. У этого представления написаны триггеры instead of INSERT, DELETE, UPDATE.
Во время проектирования у свойства UpdateTable есть возможность выбрать как любую таблицу из этого представления, так и само представление.
Так вот когда выбираешь какую либо таблицу, то появляется возможность редактировать (run-time) только поля этой таблицы. Если выбрать представление, то весь датасет в ReadOnly.
Проблему можно решить только явно создав поля в датасете? и там задав у свойства ReadOnly = false????
или еще как-то можно?
P.S. А то не хочется создавать столько полей...
- Чт 27 мар 2014 15:51
- Форум: SQL Server Data Access Components
- Тема: Возвращение ID при вставке
- Ответы: 12
- Просмотры: 15777
Re: Возвращение ID при вставке
Разобрался, это шутил триггер ISTEAD OF INSERT, почему то если есть такой триггер функция scope_identity() не работает, пришлось воспользоваться вместо нее - IDENT_CURRENT('LISTVOLUME').
Но это не хорошее решение
Но это не хорошее решение
- Чт 27 мар 2014 14:23
- Форум: SQL Server Data Access Components
- Тема: Возвращение ID при вставке
- Ответы: 12
- Просмотры: 15777
Возвращение ID при вставке
Всем добрый день!
есть такой SQL:
и есть такой код в SQLInsert:
так же в документации написано
есть такой SQL:
Код: Выделить всё
SELECT Lv.ID_LISTVOLUME,
Lv.NAME,
Lv.PAGE,
Lv.TYPEPAGE,
Lv.NOTICE,
Lv.REF_REV AS ID_REVISIONS
FROM dbo.LISTVOLUME Lv
WHERE Lv.REF_REV = :ID_REVISIONS
ORDER BY PAGE
Код: Выделить всё
INSERT INTO LISTVOLUME (NAME, NOTICE, REF_REV)
VALUES (:Name, :NOTICE, :ID_REVISIONS)
SET :ID_LISTVOLUME = scope_identity()
Но суди по мониторингу (DBMonitor) ID_LISTVOLUME = NULL, подскажите как заставить возвращать только что вставленный IDUse the ReturnParams property to return the new values of fields to dataset after insert or update.When ReturnParams is True, OUT parameters of the SQLInsert and SQLUpdate statements is assigned to corresponding fields. The default value is False.
- Пн 24 мар 2014 18:13
- Форум: SQL Server Data Access Components
- Тема: Можно ли избежать неявной транзакции?
- Ответы: 19
- Просмотры: 19153