Функция приложения FireDac не создает новую запись в наборе данных, вместо этого она изменяет записьC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Функция приложения FireDac не создает новую запись в наборе данных, вместо этого она изменяет запись

Сообщение Anonymous »

Для моей стажировки я разрабатываю простое приложение TCL Windows с использованием C ++ Builder 12. < /p>
Приложение используется для выполнения простого CRUD с интерфейсом. Я использую SQLite в качестве базы данных, а также FireDAC, хотя это может быть не релевантным. Правила. Всякий раз, когда я нажимаю на «Nouvelle Rallonge» (New Extension) или «Toobe Tube» (новая трубка), я вызываю другое окно, а также Append () в правой таблице и после заполнения требуемого поля (ов) Я post () it.
Проблема в том, что Append () странно действует. В остальной части приложения это работает так, как задумано. Но здесь он получает значение уже существующей записи в базе данных (отображается в tdbgrid ), и я могу ее изменить, но я не могу создать новую запись.

Я использую то же окно «архитектура» (т.е. Tdbedit ) и логика кода в качестве других страниц, где он работает совершенно хорошо.
Вот код, вызывающий проблемы:
2nd Страница: < /p>

Код: Выделить всё

//---------------------------------------------------------------------------

#include 
#pragma hdrstop

#include "menuApp.h"
#include "menuRallonges.h"
#include "datamodule.h"
#include "gestionRallonge.h"
#include "gestionTube.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFMenuRallonges *FMenuRallonges;
extern bool isEditing;
//---------------------------------------------------------------------------
__fastcall TFMenuRallonges::TFMenuRallonges(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFMenuRallonges::btRallongeClick(TObject *Sender)
{
TFRallonge *FRallonge = new TFRallonge(this);
short res = FRallonge->ShowModal();
delete FRallonge;

}
//---------------------------------------------------------------------------
void __fastcall TFMenuRallonges::btTubeClick(TObject *Sender)
{
TFTube *FTube = new TFTube(this);
short res = FTube->ShowModal();
delete FTube;

}
//---------------------------------------------------------------------------

void __fastcall TFMenuRallonges::FormShow(TObject *Sender)
{
DataModule1 = new TDataModule1(this);
isEditing=false;
DBGrid1->DataSource->DataSet->Refresh();
DBGrid2->DataSource->DataSet->Refresh();
}
//---------------------------------------------------------------------------

void __fastcall TFMenuRallonges::btModifRallongeClick(TObject *Sender)
{
isEditing=true;
btRallongeClick(this);
FormShow(this);
}
//---------------------------------------------------------------------------

void __fastcall TFMenuRallonges::btModifTubeClick(TObject *Sender)
{
isEditing=true;
btTubeClick(this);
FormShow(this);
}
//---------------------------------------------------------------------------

void __fastcall TFMenuRallonges::FormDestroy(TObject *Sender)
{
if (DataModule1 != nullptr)
{
delete DataModule1;
DataModule1 = nullptr;
}
}
//---------------------------------------------------------------------------

void __fastcall TFMenuRallonges::FormClose(TObject *Sender, TCloseAction &Action)
{
FormDestroy(this);
}
//---------------------------------------------------------------------------
< /code>
Страница трубки: < /p>
//---------------------------------------------------------------------------

#include 
#pragma hdrstop

#include "datamodule.h"
#include "menuRallonges.h"
#include "gestionTube.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFTube *FTube;
extern bool isEditing;
//---------------------------------------------------------------------------
__fastcall TFTube::TFTube(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFTube::Button1Click(TObject *Sender)
{
Button1->SetFocus();
try {
DataModule1->TubevideTable->Post();
}
catch (const Exception &E) {
ShowMessage("Erreur lors de l'insertion : " + E.Message);
}
}
//---------------------------------------------------------------------------

void __fastcall TFTube::FormShow(TObject *Sender)
{

if (isEditing==true) {
//      ShowMessage("editing true");
}
else
{
//      ShowMessage("editing false");
//      DataModule1->TubevideTable->Last();
DataModule1->TubevideTable->Append();

}

}
//---------------------------------------------------------------------------
void __fastcall TFTube::Button2Click(TObject *Sender)
{
DataModule1->TubevideTable->Cancel();
}
//---------------------------------------------------------------------------
Я не знаю, что вызывает это, поэтому, если у вас есть идея, скажите мне.


Подробнее здесь: https://stackoverflow.com/questions/793 ... ead-it-mod
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»