Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> БД Paradox 
:(
    Опции темы
Spawn
Дата 27.6.2002, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 278
Регистрация: 3.6.2002

Репутация: нет
Всего: нет



Я рештил настройки меню загружать и сохранять в базу данных(Paradox).
Насколько я понял для того, чтобы загрузить данные из БД нужно использовать
DataSourse и Table(или Query, если надо взять часть данных), но я не могу понять как сохранить данные в БД. К примеру у меня есть DBCheckBox1. После компиляции и активизации формы в него автоматически идет закрузка того статуса, который был установлен в БД(False или True, соответственно cbUnchecked и cbChecked). Но как произвести сохранение изменение
изменения статуса DBCheckBox1? Подскажите ПЛЗ для меня енто очень важно.
:baaa
PM MAIL   Вверх
VoL
Дата 27.6.2002, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 26.3.2002

Репутация: нет
Всего: нет



Вообще, сохранение должно производиться автоматически при переходе на другое поле: Table.Next
PM MAIL   Вверх
VoL
Дата 27.6.2002, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 26.3.2002

Репутация: нет
Всего: нет



Когда я делал с этим боксом, у меня вес работало... Правда я использовал dbase IV
PM MAIL   Вверх
Spawn
Дата 27.6.2002, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 278
Регистрация: 3.6.2002

Репутация: нет
Всего: нет



Дело в том, что когда я в активной форме нажимаю на ДБЧекБокс, то смены его статуса не происходит!!!
PM MAIL   Вверх
Vit
Дата 27.6.2002, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Table1.post;


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
VoL
Дата 27.6.2002, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 26.3.2002

Репутация: нет
Всего: нет



А ты уверен, что там не стоит какого-либо запрета, типа ReadOnly?
PM MAIL   Вверх
Spawn
Дата 27.6.2002, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 278
Регистрация: 3.6.2002

Репутация: нет
Всего: нет



Цитата(VoL @ 27.6.2002, 15:25)
А ты уверен, что там не стоит какого-либо запрета, типа ReadOnly?

Уже исправил. Ошибка была в Active=False :)
Но встала другая проблема:
если делать так, как сказал Vit то появляется сообщение об ошибке(типа того, что "таблица находится не в режиме редактирования или вставки", хотя ReadOnly стоит в False).
PM MAIL   Вверх
Vit
Дата 27.6.2002, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Так тебе надо проверять, и делать post только в случае режима Edit - т.е. если информация была изменена.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Spawn
Дата 27.6.2002, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 278
Регистрация: 3.6.2002

Репутация: нет
Всего: нет



На счет Query:
Когда я делаю запрос в таблицу, которая имеет значение полей типа String, то все нормально загружает в DBGrid:

Select Name FROM AdminBase

Но если таким же способом пататься загрузить данные типа Boolean(поставить True на Active), то возникает Еррор:'Invalid use of keyword'
В чем может быть дело?
PM MAIL   Вверх
Spawn
Дата 27.6.2002, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 278
Регистрация: 3.6.2002

Репутация: нет
Всего: нет



Попробовал так, но се равно Еррор:

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.State=cbChecked then
  begin
    with Table1 do begin
      Active:=True;
      Edit;
      FieldByName('Stet').AsBoolean:=True;
      Post;
     Active:=False;
   end;
 end
else begin
 with Table1 do begin
   Active:=True;
   Open;
   Edit;
   FieldByName('Stet').AsBoolean:=false;
   Post;
  Active:=False;
 end;
end;
end;
PM MAIL   Вверх
Spawn
Дата 27.6.2002, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 278
Регистрация: 3.6.2002

Репутация: нет
Всего: нет



Цитата(Spawn @ 27.6.2002, 19:26)
Попробовал так, но се равно Еррор:

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.State=cbChecked then
  begin
    with Table1 do begin
      Active:=True;
      Edit;
      FieldByName('Stet').AsBoolean:=True;
      Post;
     Active:=False;
   end;
 end
else begin
 with Table1 do begin
   Active:=True;
   Open;
   Edit;
   FieldByName('Stet').AsBoolean:=false;
   Post;
  Active:=False;
 end;
end;
end;

А все дело в том, что надо было кое-что подделать и запускать не из Делфи так как в ентом случае 2 приложения юзают БД и возникал еррор :)  :)  :)
PM MAIL   Вверх
Vit
Дата 27.6.2002, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Я что-то не понял ты используешь TDBCheckBox или TCheckBox?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Spawn
Дата 27.6.2002, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 278
Регистрация: 3.6.2002

Репутация: нет
Всего: нет



Цитата(Vit @ 27.6.2002, 21:57)
Я что-то не понял ты используешь TDBCheckBox или TCheckBox?

И то и другое :)  :)
Я пробую разные варианты :)
PM MAIL   Вверх
Vit
Дата 27.6.2002, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



C TCheckBox этот код должен работать:
Код

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
 Table1.active:=true;
 Table1.First;
 Table1.edit;
 Table1.FieldByName('Stet').AsBoolean:=CheckBox1.checked;
 try
   Table1.post;
 except
   on e:exception do
     begin
       showmessage(e.message);
       Table1.cancel;
     end;
 end;
 Table1.active:=false;
end;

Только в таблице должна быть хотя бы одна запись, если таблица пустая то код работать не будет, так как тогда надо не редактировать а вставлять запись.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Spawn
Дата 28.6.2002, 07:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 278
Регистрация: 3.6.2002

Репутация: нет
Всего: нет



В своей проге я сделал так что, при регистрации нового пользователя данные записываются в БД, но потом при вводе пароля для входа под своим ником, вход происходит только после второго нажатия на кнопку:

{Связь с таблицей данных осуществляется на стадии OnCreate формы 2}
...
AName:=Edit1.Text; //Записать имя из Едит.Текста1
APass:=Edit2.Text; //Записать пароль из Едит.Текста2
Table1.Open;    //Открыть таблицу
if PageControl1.ActivePage=TabSheet1 then //если превая страница открыта ...
...
{код проверки на заполнение полей ввода данных с именем и пасом}
...
if not Table1.IsEmpty then begin
 repeat
  if (AName=Table1.FieldByName('Name').AsString) and
(APass=Table1.FieldByName('Pass').AsString) then //Если логин и пасс совпадают...
  begin
     Form1.label65.Caption:=AName;        //на Форме 1 вывести имя Админа
     Close;                        //Закрыть Форму
  end
 until not Table1.FindNext;
Table1.Close;
end;

регистрация нового пользователя осуществляется из формы 3:

...
with Form2.Table1 do begin
   Open;
   Insert;
   FieldByName('Name').AsString:=Edit1.Text;
   FieldByName('Pass').AsString:=Edit2.Text;
   Post;
 end;{наверно надо запихнуть в try .. except}
...

Из за чего же после регистрации нового юзера при вводе пароля в форме 2 он активизируется только после второго раза?(хотя в последующие разы с первого)
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1750 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.