Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не сохраняются данные в базе, после метода Post 
:(
    Опции темы
bartram
  Дата 16.7.2005, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

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



Сабж! Работаю с базой MsAccess с помощью ADO через запросы! После открытия базы для редактирования вношу данные в базу через Post. Всё как будто сохраняется потом закрываю своё приложение, открываю снова и как будто я ни чего не сохранял smile И при чём это происходит только с одной таблицей (с которой я работаю на главной форме)
Подскажите что делать?


Это сообщение отредактировал(а) bartram - 18.7.2005, 16:37


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
SPrograMMer
Дата 17.7.2005, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Спамер :)
**


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

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



Цитата(bartram @ 16.7.2005, 13:17)
Всё как будто сохраняется потом закрываю своё приложение, открываю снова и как будто я ни чего не сохранял

Подтверди транзакцию (ADOConnection.CommitTrans)


--------------------
животное = зверь
законченный гентушник
PM MAIL ICQ Jabber   Вверх
bartram
Дата 17.7.2005, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

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



Цитата(SPrograMMer @ 17.7.2005, 14:02)
Подтверди транзакцию (ADOConnection.CommitTrans)

В какой именно момент? Говрит ошибка....



--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
SPrograMMer
Дата 17.7.2005, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Спамер :)
**


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

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



Цитата(bartram @ 17.7.2005, 15:00)
В какой именно момент

Сразу как только post сделал для таблицы
Цитата(bartram @ 17.7.2005, 15:00)
Говрит ошибка....

мы не телепаты, ты наверное - то же smile


--------------------
животное = зверь
законченный гентушник
PM MAIL ICQ Jabber   Вверх
Bes
Дата 18.7.2005, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Не занимайтесь ерундой у ADOQuery есть метод ExecSQL который и выполняет все запросы на изменение никаких постов делать не надо
PM MAIL   Вверх
bartram
Дата 18.7.2005, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

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



Цитата(SPrograMMer @ 17.7.2005, 20:09)
Говрит ошибка....
мы не телепаты, ты наверное - то же

"Попытка занесения или свертываниятранзакации без предварительного начала транзакации."
Цитата(Bes @ 18.7.2005, 08:27)
у ADOQuery есть метод ExecSQL который и выполняет все запросы на изменение никаких постов делать не надо

Попробую smile

Это сообщение отредактировал(а) bartram - 18.7.2005, 09:34


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
bartram
Дата 18.7.2005, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

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



Цитата(Bes @ 18.7.2005, 08:27)
ADOQuery есть метод ExecSQL

Не сохраняет smile

Это сообщение отредактировал(а) bartram - 18.7.2005, 10:03


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
chaos
Дата 18.7.2005, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

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



Добовлять, изменять, удалять надо(во всяком случае я так делаю) с помощью компонента TADOCommand

ps в 5 версии си буилдера(без апдейта адо) постоянно вылетают ошибки при работе с пустыми таблицами
PM WWW   Вверх
Bes
Дата 18.7.2005, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



2bartram:
что значит не сохраняет?
посмотри содержимое таблицы не в своей программе (т.к. у себя ты может просто не обновляешь данные да мало ли почему) до и после выполнения запроса а вообще давно бы привел код.
изменять значения надо так:

Код

ADOQuery2.active:=false;
ADOQuery2.SQL.text:='update MyTable set Val1 = :Val1 where key1 = :key1';
ADOQuery2.parametrs[0].value='NewValue';
ADOQuery2.parametrs[1].value=2452;
ADOQuery2.ExecSQL;
//здесь визуально конечно ничего не произойдет
ADOQuery1.active:=false;
ADOQuery1.SQL.text:='select * from MyTable';
ADOQuery1.active:=true;
//а вот теперь че-нить и увидешь


Никаких других действий для работы с базами через АДОКвери и делать-то не надо - это самый простой и надежный способ а всякие посты опены и пр. это я так понимаю из бде отсалось да еще и от тэйблов.
PM MAIL   Вверх
bartram
Дата 18.7.2005, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

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



Bes, посмотри исходники пожалуйста (ссылка в первом посте), сразу всё поймешь smile может быть.


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
Bes
Дата 18.7.2005, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



не распаковался архив
так объясни - постараюсь понять

Это сообщение отредактировал(а) Bes - 18.7.2005, 13:58
PM MAIL   Вверх
bartram
Дата 18.7.2005, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

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



Вот код 1 формы с таблицей:
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ADODB, DB, Grids, DBGrids, StdCtrls, ExtCtrls, DBCtrls, Menus,
  ComCtrls, ToolWin, ImgList, XPMan;

  const //объявляем необходимую константу
  QuerySQL = 'SELECT * FROM Corespondents';

type
  TMain = class(TForm)
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    sql1: TADOQuery;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    ImageList1: TImageList;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    XPManifest1: TXPManifest;
    ToolBar2: TToolBar;
    ToolButton5: TToolButton;
    ImageList2: TImageList;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    ToolButton11: TToolButton;
    PopupMenu1: TPopupMenu;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N18: TMenuItem;
    ADOConnection1: TADOConnection;
    procedure FormCreate(Sender: TObject);
    procedure DBGrid1TitleClick(Column: TColumn);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure ToolButton7Click(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure ToolButton8Click(Sender: TObject);
    procedure ToolButton9Click(Sender: TObject);
    procedure ToolButton10Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure ToolButton11Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure N10Click(Sender: TObject);
    procedure N11Click(Sender: TObject);
    procedure N12Click(Sender: TObject);
    procedure N13Click(Sender: TObject);
    procedure N14Click(Sender: TObject);
    procedure N16Click(Sender: TObject);
    procedure N17Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Main: TMain;


implementation

uses Unit2, Unit3, Unit4, Unit5, Unit6, Unit10, Unit11;

{$R *.dfm}




procedure TMain.FormCreate(Sender: TObject);
begin
sql1.SQL.Add(QuerySQL);
sql1.Open;
end;

procedure TMain.DBGrid1TitleClick(Column: TColumn);
begin
with sql1 do
  begin
    DisableControls;
    SQL.Clear;
    Close;
    SQL.Add(QuerySQL);
    SQL.Add('ORDER BY ' + Column.FieldName);
    Open;
    // Восстанавливаем настройки заголовка
    EnableControls;
  end;
end;

procedure TMain.N2Click(Sender: TObject);
begin
Firm.showmodal;
end;

procedure TMain.N3Click(Sender: TObject);
begin
City.showmodal;
end;

procedure TMain.N5Click(Sender: TObject);
begin
Contry.showmodal;
end;

procedure TMain.N4Click(Sender: TObject);
begin
Region.showmodal;
end;

procedure TMain.N7Click(Sender: TObject);
begin
close;
end;

procedure TMain.ToolButton1Click(Sender: TObject);
begin
 N2.Click;
end;

procedure TMain.ToolButton2Click(Sender: TObject);
begin
n5.Click
end;

procedure TMain.ToolButton3Click(Sender: TObject);
begin
n3.Click
end;

procedure TMain.ToolButton4Click(Sender: TObject);
begin
n4.Click;
end;

procedure TMain.ToolButton7Click(Sender: TObject);
begin
sql1.First;
end;

procedure TMain.ToolButton6Click(Sender: TObject);
begin
sql1.Delete;
end;

procedure TMain.ToolButton8Click(Sender: TObject);
begin
sql1.Prior;
end;

procedure TMain.ToolButton9Click(Sender: TObject);
begin
sql1.Next;
end;

procedure TMain.ToolButton10Click(Sender: TObject);
begin
sql1.Last;
end;

procedure TMain.ToolButton5Click(Sender: TObject);
begin
coredit.Caption:='Добавление записи в таблицу';
main.sql1.Append;
coredit.ShowModal;

end;

procedure TMain.ToolButton11Click(Sender: TObject);
begin
coredit.showmodal;
end;

procedure TMain.N8Click(Sender: TObject);
begin
ToolButton5.Click;
end;

procedure TMain.N9Click(Sender: TObject);
begin
ToolButton11.Click;
end;

procedure TMain.N10Click(Sender: TObject);
begin
ToolButton6.Click;
end;

procedure TMain.N11Click(Sender: TObject);
begin
ToolButton7.Click;
end;

procedure TMain.N12Click(Sender: TObject);
begin
ToolButton8.Click;
end;

procedure TMain.N13Click(Sender: TObject);
begin
ToolButton9.Click;
end;

procedure TMain.N14Click(Sender: TObject);
begin
ToolButton10.Click;
end;

procedure TMain.N16Click(Sender: TObject);
begin
StatContry.showmodal;
end;

procedure TMain.N17Click(Sender: TObject);
begin
StatRegion.showmodal;
end;
end.

Вот Код формы которая сохраняет изменения в таблице:
Код

unit Unit6;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, DBCtrls, ExtDlgs;

type
  TCoredit = class(TForm)
    Label1: TLabel;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    Label2: TLabel;
    Label3: TLabel;
    DBEdit3: TDBEdit;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    DBEdit7: TDBEdit;
    Label8: TLabel;
    DBEdit8: TDBEdit;
    OpenPicDlg: TOpenPictureDialog;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Label9: TLabel;
    DBEdit9: TDBEdit;
    DBEdit10: TDBEdit;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    DBEdit6: TDBEdit;
    DBEdit11: TDBEdit;
    DBEdit12: TDBEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
   // procedure FormActivate(Sender: TObject);
   // procedure FormDeactivate(Sender: TObject);
    //procedure DBComboBox1Enter(Sender: TObject);
    //procedure DBComboBox2Enter(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Coredit: TCoredit;

implementation

uses Unit1, Unit3, Unit5, Unit4;

{$R *.dfm}

procedure TCoredit.Button1Click(Sender: TObject);
begin
if openpicdlg.execute
then
dbedit8.Text:=openpicdlg.FileName;
end;

procedure TCoredit.Button2Click(Sender: TObject);
begin
  //dbCombobox1.Text:=inttostr(dbcombobox1.ItemIndex);
//dbCombobox2.Text:=inttostr(dbcombobox1.ItemIndex);
//dbCombobox3.Text:=inttostr(dbcombobox1.ItemIndex);
main.sql1.Edit;
main.sql1.Post;
coredit.Close;
coredit.Caption:='Изменить запись';
end;

procedure TCoredit.Button3Click(Sender: TObject);
begin
main.sql1.cancel;
coredit.Close;
coredit.Caption:='Изменить запись';
end;

procedure TCoredit.FormClose(Sender: TObject; var Action: TCloseAction);
begin
main.sql1.Cancel;
end;

Пожалуйста помоги, я просто не знаю что и делать. Чего я только не пробовал.


Это сообщение отредактировал(а) bartram - 18.7.2005, 16:37


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
Bes
Дата 19.7.2005, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Сорри
Ну у тебя и навороченоо................
А что ты собственно хочешь сделать?
Где-то была темка по поводу того как правильно программировать базы через АДОКвери, мы там спорили и даже к чему-то пришли, но то что у тебя написано я просто не понимаю.
Давай так: ты все таки напишешь что ты пытаешься сделать а именно какая структура бызы данных какую ты хочешь изменить запись и какие именно поля и какимим имменно значениями ок?
потому как проблема я так понял здесь:
Код

main.sql1.Edit;
main.sql1.Post;
coredit.Close;
coredit.Caption:='Изменить запись';

а ни текста запроса ни параметров ни смысла изменять заголовок формы после закрытия я не вижу....... smile
PM MAIL   Вверх
bartram
Дата 19.7.2005, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

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



Цитата(Bes @ 19.7.2005, 07:26)
ни смысла изменять заголовок формы после закрытия я не вижу.......

Есть смысл. Прикол в том что если вместо запроса подставлю ADOTable всё работает smile А почему с запросом не работает не знаю...хотя раньше всё работало. smile А в один прекрассный момент всё раз, и перестало работат smile


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
Bes
Дата 19.7.2005, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну слушай ты или не хочешь понимать или не хочешь что-то делать.
Если так и будешь партизанить ничему не научишься. Я тебе говорю что так с Квери не надо работать а ты мне доказываешь что надо так же как с Тэйблами но у тебя "почему-то" не работает. Что за чушь? smile
Твою в душу.... напиши свой запрос или если считаешь что твой запрос верх программирования и его не стоит публиковать не запотентовав то хотя бы запомни что Select-ы выполняются Active:=true а update insert delete ExecSQL больше я тебе ничем помочь не могу при столь скудной информации.
В конце концов кому это надо тебе или мне?

Это сообщение отредактировал(а) Bes - 19.7.2005, 09:59
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0590 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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