Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Странность Аксеса, не могу понять в чем проблема  
V
    Опции темы
kovalenko123
Дата 25.7.2008, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Всем привет !!! 
Не могу понять в чем дело у меня Программа работает с аксесом (адо) в обшем надо просто заполнять и редактировать ( все было бы просто если б не запрос )  использую метод Insert 
 и edit а после нажатия на кнопку сохранить он удаляет одну строчку из базы 
Вот код на метод insert 
Код

procedure TForm2.Button1Click(Sender: TObject);
begin
q := 'SELECT Продажа.Код AS Продажа_Код, Продажа.Категория,'+
  ' Продажа.Тип_стен, Продажа.Комнаты,Продажа.Планировка, Продажа.Телефон,'+
  ' Продажа.Площадь,Продажа.Этаж, Продажа.Комплектация, Продажа.Адрес,'+
  ' Продажа.Дата, Продажа.Заметка, Продажа.Цена, Продажа.Хозяин,Продажа.Хтелефон,'+
  ' Продажа.Статус, Категории.Код AS Категории_Код, Категории.Название AS Категории_Название,'+
  ' Планировка.Код AS Планировка_Код,Планировка.Название AS Планировка_Название,'+
  ' Тип_стен.Код AS Тип_стен_Код,Тип_стен.Название AS Тип_стен_Название '+
  ' FROM Тип_стен INNER JOIN (Планировка INNER JOIN (Категории INNER JOIN Продажа ON Категории.Код = Продажа.Категория) ON Планировка.Код = Продажа.Планировка)ON Тип_стен.Код = Продажа.Тип_стен' +
  ' Where  (Продажа.Статус ="Не продано")';
  begin
with Form1.AdoQuery1 do Begin
        insert;
  FieldByName('Категория').AsInteger := mas[ComboBox1.ItemIndex,1];
  FieldByName('Планировка').AsInteger := mas[ComboBox2.ItemIndex,1];;
  FieldByName('Тип_стен').AsInteger := mas[ComboBox3.ItemIndex,1];
  FindField('Комнаты').AsString:=Edit1.Text;
  FindField('Телефон').AsString:=Edit2.Text;
  FindField('Площадь').AsString:=Edit3.Text;
  FindField('Этаж').AsString:=Edit4.Text;
  FindField('Комплектация').AsString:=Edit5.Text;
  FindField('Адрес').AsString:=Edit6.Text;
  FindField('Цена').AsString:=Edit7.Text;
  FindField('Заметка').AsString:=Edit8.Text;
  FindField('Статус').AsString:= 'Не продано' ;
     Post;

 end;
  Form1.ADOQuery1.Active := False;
  Form1.ADOQuery1.SQL.Text := q;
  Form1.ADOQuery1.ExecSQL;
  Form1.ADOQuery1.Open;
end;
end;


там комбобоксы заполняются  из массива по create Form 
Код

while not Form1.ADOTable1.Eof do
    begin
      ComboBox1.Items.Add(Form1.ADOTable1.Fields[1].AsString);
      mas[ComboBox1.Items.Count - 1,1] := Form1.ADOTable1.Fields[0].AsInteger;
      Form1.ADOTable1.Next;
    end;
  while not Form1.ADOTable2.Eof do
    begin
      ComboBox2.Items.Add(Form1.ADOTable2.Fields[1].AsString);
      mas[ComboBox2.Items.Count - 1,2] := Form1.ADOTable2.Fields[0].AsInteger;
      Form1.ADOTable2.Next;
    end;
  while not Form1.ADOTable3.Eof do
    begin
      ComboBox3.Items.Add(Form1.ADOTable3.Fields[1].AsString);
      mas[ComboBox3.Items.Count - 1,3] := Form1.ADOTable3.Fields[0].AsInteger;
      Form1.ADOTable3.Next;
    end;

 
Обьясните почему это происходит Заранее спасибо  


Это сообщение отредактировал(а) kovalenko123 - 27.7.2008, 10:44
PM MAIL ICQ   Вверх
Rodman
Дата 25.7.2008, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



тебе обязательно так замудренно писать?
Цитата(kovalenko123 @  25.7.2008,  10:05 Найти цитируемый пост)
Вот код на метод insert 

Цитата(kovalenko123 @  25.7.2008,  10:05 Найти цитируемый пост)
q := 'SELECT

замечаешь подвох?
PM MAIL WWW Skype GTalk YIM MSN   Вверх
kovalenko123
Дата 25.7.2008, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



а тогда у меня после дополнения в гриде не отображаются данные 
чтоб запрос не терялся я ему спец так и сделал 
а что это не нужно??? 

Кстати  в базу данные идут (счетчик "бежит") а в гриде я это не вижу smile 

Это сообщение отредактировал(а) kovalenko123 - 25.7.2008, 10:38
PM MAIL ICQ   Вверх
Rodman
Дата 25.7.2008, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



юзай еще один Query
PM MAIL WWW Skype GTalk YIM MSN   Вверх
kovalenko123
Дата 25.7.2008, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Отдельно для заполнения и отдельно для отображения чтоли ?

Это сообщение отредактировал(а) kovalenko123 - 25.7.2008, 14:06
PM MAIL ICQ   Вверх
Rodman
Дата 25.7.2008, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



ну да.... 

добавил вторым...
обновил первый...

снова добавиль вторым...
обновил первый
PM MAIL WWW Skype GTalk YIM MSN   Вверх
kovalenko123
Дата 25.7.2008, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



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

Добавлено через 9 минут и 2 секунды
Код

procedure TMain.N11Click(Sender: TObject);
begin
 if Application.MessageBox(PChar ('Вы действительно хотите '+
    'УДАЛИТЬ эту запись'), 'Внимание!', MB_OKCANCEL)=id_OK then
  begin
  Dm.Delete.Parameters[0].Value := dm.Query1.Fields[2].AsInteger;
  Dm.Delete.ExecSQL;
  //Dm.DsQ.DataSet.DisableControls;
  //Dm.DsQ.DataSet.EnableControls;

  Dm.Query1.Active := False;
  Dm.Query1.Open;
end;
end;


вот код удоления
Надо че то выключить потом включить я все пробовал
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

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

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


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


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

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

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


 




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


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

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