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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.053 c
15-1450244415
KSergey
2015-12-16 08:40
2017.01.15
Смена пути в cmd файле и FAR Manager


2-1422887394
Вова
2015-02-02 17:29
2017.01.15
Перенос Delphi на другой PC


2-1419335246
Drowsy
2014-12-23 14:47
2017.01.15
TibDataSet в TDBGrid (TDBDridEh).


15-1448185459
Limpo
2015-11-22 12:44
2017.01.15
Oracle хранимые процедуры


15-1455954062
Beck
2016-02-20 10:41
2017.01.15
Правильная реализация





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