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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.09.2012, 11:16   #1
VasilisKm
Новичок
Джуниор
 
Регистрация: 17.09.2012
Сообщений: 2
По умолчанию Delphi+access adotable

Добрый день... пишу програмку на дельфи в связке с базой на Access.
И вроде все работает но есть одно "но".
В базе работает несколько человек, но коннект происходит один для всех по одной строке коннекта в адоконнект и уже в самой программе в зависимости от пароля определяется кто и скакими правами. суть проблемы в чем?

если один пользователь добавлет запись в базу данных то он эту запись в базе данных и видит сразу.
другой пользователь эту запись почемуто не видит пока не переконнектится к базе. (такое чувство что adotable при коннекте подкачала в себя всю таблицу и потом тока по мере надобности отправляет туда инфу) Вопрос. как принудительно обновить содержание adotable?
VasilisKm вне форума Ответить с цитированием
Старый 17.09.2012, 12:06   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Commit или что там в Access есть подобное.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 17.09.2012, 12:58   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
такое чувство что adotable при коннекте подкачала в себя всю таблицу
Именно так он и делает. Только не при коннекте, а при открытии (Open). Хотя если стоит (Active=True) то открытие происходит сразу же после соединения. Отсюда делаем вывод
Цитата:
как принудительно обновить содержание adotable
Заново открыть таблицу.
Close; Open;
или же просто спользовать Requery;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 17.09.2012, 13:05   #4
VasilisKm
Новичок
Джуниор
 
Регистрация: 17.09.2012
Сообщений: 2
По умолчанию

evg_m спасибо..
requery то что доктор прописал. пробовал и рефреш, пробовал и open - не то.
VasilisKm вне форума Ответить с цитированием
Старый 17.09.2012, 15:52   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
пробовал и open - не то.
чтобы заново открыть ее(TADOTable) надо сначала закрыть.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 17.09.2012, 21:21   #6
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Сообщение от VasilisKm Посмотреть сообщение
evg_m спасибо..
requery то что доктор прописал. пробовал и рефреш, пробовал и open - не то.
Странно... рефреш прекрасно работает. Только надо сначала контролы дисаблить, чтоб таблица у пользователя при обновлении не моргала.

И кстати, когда пользуетесь Open - у Вас курсор в таблице уйдет на First. То есть придется делать как-то так примерно:

Код:
Id:=Table.FieldByName('ID').value; //Запоминаем текущий элемент
Table1.DisableControls; 
Table1.Close;
Table1.Open;
Table1.EnableControls;
Table1.Locate('ID',varArrayOf(ID),[]);
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 18.09.2012, 00:05   #7
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
И кстати, когда пользуетесь Open - у Вас курсор в таблице уйдет на First. То есть придется делать как-то так примерно:
Код:
Id:=Table.FieldByName('ID').value; //Запоминаем текущий элемент
Table1.DisableControls; 
Table1.Close;
Table1.Open;
Table1.EnableControls;
Table1.Locate('ID',varArrayOf(ID),[]);
предложу свой вариант:
Код:
var
bm :pointer;
begin
bm:=Table1.GetBookmark;
Table1.DisableControls; 
Table1.Close;
Table1.Open;
Table1.EnableControls;
if Table1.BookmarkValid(bk)
  then Table1.GotoBookmark(bk)
  else Table1.First;
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi+Access: ADOTable BanzoO Помощь студентам 20 21.08.2011 21:42
Проблема с MS access+ADOtable jziiiiiii БД в Delphi 7 12.07.2010 08:11
как Microsoft Access(ADOConnection ADOTable DataSource DBGrid) переделать под mySQL? Levsha100 БД в Delphi 6 23.05.2009 19:48
Как копировать данные из ADOTable в ADOTable? mauar БД в Delphi 1 10.05.2008 16:05
Delphy и Access.вводя инфу во вторичный файл Access, она отражалась в первом ADOTable Lev БД в Delphi 0 11.11.2007 12:14