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

Вниз

Уникальность соединения   Найти похожие ветки 

 
Xmen   (2011-07-26 15:38) [0]

Привет мастерам!
пару лет назад сделал клиент программу для подсистемы по обслуживанию пластиковых карт. Прога создавал файл для открытия карт и для пополнения карт. Теперь нужно сделать чтобы прога работала с базой одновременно с нескольким соединением  и те данные созданные при разных соединениях были бы уникальными, имели бы уникальны номер. например я ввел данные по одному клиенту а другой сотрудник тоже по этому клиенту вводил данные а в базе нужно сделать так чтобы было различие. Я хотел сделать так чтобы при соединение создать GUID код и сохранит данные с этим кодом. а GUID код в базе в отдельной таблице указать кому принадлежит этот код и когда был создан и для когого клиента. Хотелось бы узнать ваши мнения по этому поводу. Если не ясно написал то могу уточнить


 
SQLEXPRESS   (2011-07-26 15:47) [1]

триггером вести историю изменений


 
b z   (2011-07-26 15:48) [2]

Уточните, т.к. непонятно зачем отдельная таблица, зачем при соединении создавать GUID и т.д.


 
Виталий Панасенко   (2011-07-26 15:52) [3]

так а БД одна?


 
Xmen   (2011-07-26 15:53) [4]


> Виталий Панасенко   (26.07.11 15:52) [3]
> так а БД одна?

Да


 
SQLEXPRESS   (2011-07-26 15:55) [5]

да, кстати, БД одна?
если одна - то триггером, там из соединения много служебной инф-ции можно почерпнуть, плюс время изменения. Просто еще одна таблица версий для записей.


 
Xmen   (2011-07-26 15:56) [6]


> b z   (26.07.11 15:48) [2]
> Уточните, т.к. непонятно зачем отдельная таблица, зачем
> при соединении создавать GUID и т.д.

Это чтобы отличить мои данные от чужих если я делаю корректировку или сформирую файл из этих данных. Работать только со своими данными и только теми которых создал в этой сессии работе с прогой


 
Xmen   (2011-07-26 15:57) [7]


> да, кстати, БД одна?если одна - то триггером, там из соединения
> много служебной инф-ции можно почерпнуть, плюс время изменения.
>  Просто еще одна таблица версий для записей.

Нужно тогда почитать, раньше я не работал с триггерами


 
Виталий Панасенко   (2011-07-26 15:58) [8]

ну, я так думаю, уникальным будет пара ИД(генерируемая триггером) и картсчет. хотя, все зависит от расторопности менегера.. тогда еще и дата/время записи.. хотя пока смысл до конца не понял - как можно данные по одной карте разносить на разных рабочих местах


 
Виталий Панасенко   (2011-07-26 16:02) [9]


> Xmen   (26.07.11 15:56) [6]


> Это чтобы отличить мои данные от чужих если я делаю корректировку
> или сформирую файл из этих данных. Работать только со своими
> данными и только теми которых создал в этой сессии работе
> с прогой

В ЖарПтице все для этого есть
1 мои данные - разные имена пользователей
2 ------------------------
System context variables
------------------------

CURRENT_CONNECTION / CURRENT_TRANSACTION (FB 1.5)
-------------------------------------------------

 Function:
   Returns system identifier of the active connection/transaction,
   i.e. a connection/transaction, in which context the given SQL
   statement is executed.

 Author:
   Dmitry Yemanov <yemanov@yandex.ru>

 Syntax rules:
   CURRENT_CONNECTION / CURRENT_TRANSACTION

 Type:
   INTEGER

 Scope:
   DSQL, PSQL

 Example(s):
   1. SELECT CURRENT_CONNECTION FROM RDB$DATABASE;
   2. NEW.CONN_ID = CURRENT_TRANSACTION;
   3. EXECUTE PROCEDURE P_LOGIN(CURRENT_CONNECTION);

 Note(s):
   These values are stored on the database header page,
   so they will be reset after a database restore.


 
Виталий Панасенко   (2011-07-26 16:03) [10]

или по п.1 - IP рабочей станции


 
SQLEXPRESS   (2011-07-26 16:04) [11]

А может и есть штатные средства аудита, не силен.

мы так сделали
(таблица_аудита)
id записи исходной таблицы, кто, на что, под каким именем, и т.д. изменил.

join с исходной по id, order by по времени. Все наглядно, +можно вернуться на любой момент назад. (почти, там тоже логика есть на самом деле)

можно попробовать еще where (login был мой), тогда каждый и будет видеть свои
вроде это преследуется?
НО
это неправильно с т.з. организации процесса и вообще, БД


 
Xmen   (2011-07-26 16:04) [12]


> ну, я так думаю, уникальным будет пара ИД(генерируемая триггером)
> и картсчет. хотя, все зависит от расторопности менегера.
> . тогда еще и дата/время записи.. хотя пока смысл до конца
> не понял - как можно данные по одной карте разносить на
> разных рабочих местах

Не по одой карте а по одному корпоративному клиенту. Например я ввожу данные о сотрудников корт.клета первых 50 сотрудников, а другой чел остальных 50 сотрудников. Получается данные одного корп.кл. 100 сотрудников из них 50 которых я могу редактировать и записать в файл.


 
Виталий Панасенко   (2011-07-26 16:09) [13]


> Xmen   (26.07.11 16:04) [12]


разное имя пользователя. ну и остальное (ИД клиента, что там еще есть)


 
Виталий Панасенко   (2011-07-26 16:12) [14]

есть еще одна контекстная переменная CURRENT_USER...и работай! только со своими данными



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

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

Наверх




Память: 0.5 MB
Время: 0.028 c
1-1340607264
viosvi
2012-06-25 10:54
2017.01.15
ориентация листа OpenOffice


2-1431696831
Дмитрий
2015-05-15 16:33
2017.01.15
Редактирование двух связанных таблиц в одной строке таблицы


15-1457219940
Eraser
2016-03-06 02:19
2017.01.15
Требуется ядерщик


15-1450980808
pavelnk
2015-12-24 21:13
2017.01.15
Ip письма яндекса


15-1452503308
Копир
2016-01-11 12:08
2017.01.15
Убить программиста.