BorlandTalk.com Forum Index BorlandTalk.com
Borland discussion newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Error: "Type mismatch in expression"

 
Post new topic   Reply to topic    BorlandTalk.com Forum Index -> C++ Builder Databases
View previous topic :: View next topic  
Author Message
csg
Guest





PostPosted: Sat May 28, 2005 3:06 pm    Post subject: Error: "Type mismatch in expression" Reply with quote



Hello,

I receive an error: "Type mismatch in expression" during execution of
the method: 'Update' in the following class: 'Problem.cpp' at the
point: 'CFMSHDDatabase->Execute(SQLstmt, stmtParams, false, NULL);' :-

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

#include <vcl.h>
#pragma hdrstop

#include "Problem.h"
#include "Interaction.h"
#include "CFMSHDDataModule.h"
#include "CFMSHDInput.h"
//---------------------------------------------------------------------------

#pragma package(smart_init)
void Problem::NumberSet(int aNumber) {
number = aNumber; }
int Problem::NumberGet() {
return number; }
void Problem::SummarySet(AnsiString aSummary) {
summary = aSummary; }
AnsiString Problem::SummaryGet() {
return summary; }
void Problem::DescriptionSet(AnsiString aDescription) {
description = aDescription; }
AnsiString Problem::DescriptionGet() {
return description; }
void Problem::ErrorMessageSet(AnsiString anErrorMessage) {
errorMessage = anErrorMessage; }
AnsiString Problem::ErrorMessageGet() {
return errorMessage; }
void Problem::PrioritySet(AnsiString aPriority) {
priority = aPriority; }
AnsiString Problem::PriorityGet() {
return priority; }
void Problem::ConsultantAllocatedSet(AnsiString aConsultantAllocated) {
consultantAllocated = aConsultantAllocated; }
AnsiString Problem::ConsultantAllocatedGet() {
return consultantAllocated; }
void Problem::InputDateSet(AnsiString anInputDate) {
inputDate = anInputDate; }
AnsiString Problem::InputDateGet() {
return inputDate; }
void Problem::InputTimeSet(AnsiString anInputTime) {
inputTime = anInputTime; }
AnsiString Problem::InputTimeGet() {
return inputTime; }
void Problem::Put() {
TDatabase *CFMSHDDatabase = Session->OpenDatabase("Paradox
CFMSHD");
TParams *stmtParams = new TParams();
AnsiString SQLstmt;
try {
CFMSHDDatabase->Connected = true;
stmtParams->CreateParam(ftInteger,"NumberParam", ptInput);
stmtParams->ParamByName("NumberParam")->AsInteger = number;
stmtParams->CreateParam(ftString,"SummaryParam", ptInput);
stmtParams->ParamByName("SummaryParam")->AsString = summary;
stmtParams->CreateParam(ftMemo,"DescriptionParam", ptInput);
stmtParams->ParamByName("DescriptionParam")->AsMemo =
description;
stmtParams->CreateParam(ftString,"ErrorMessageParam", ptInput);
stmtParams->ParamByName("ErrorMessageParam")->AsString =
errorMessage;
stmtParams->CreateParam(ftString,"PriorityParam", ptInput);
stmtParams->ParamByName("PriorityParam")->AsString = priority;
stmtParams->CreateParam(ftString,"ConsultantAllocatedParam",
ptInput);
stmtParams->ParamByName("ConsultantAllocatedParam")->AsString =
consultantAllocated;
stmtParams->CreateParam(ftString,"InputDateParam", ptInput);
stmtParams->ParamByName("InputDateParam")->AsString =
inputDate;
stmtParams->CreateParam(ftString,"InputTimeParam", ptInput);
stmtParams->ParamByName("InputTimeParam")->AsString =
inputTime;
SQLstmt = "INSERT INTO Problem.DB ";
SQLstmt +=
"(Number,Summary,Description,ErrorMessage,Priority,ConsultantAllocated,";
SQLstmt += "InputDate,InputTime) ";
SQLstmt += "VALUES
(:NumberParam,:SummaryParam,:DescriptionParam,:ErrorMessageParam,";
SQLstmt += ":PriorityParam,:ConsultantAllocatedParam,";
SQLstmt += ":InputDateParam,:InputTimeParam)";
CFMSHDDatabase->Execute(SQLstmt, stmtParams, false, NULL);
CFMSHDDatabase->Session->Close(); }
__finally {
delete stmtParams; }
}
void Problem::Get() {
}
void Problem::Clear() {
CFMSHDInputForm->Number->Clear();
CFMSHDInputForm->Summary->Clear();
//CFMSHDForm->Description->Clear();
//CFMSHDInputForm->ErrorMessage->Clear();
CFMSHDInputForm->Priority->Clear();
CFMSHDInputForm->ConsultantAllocated->Clear();
CFMSHDInputForm->InputDate->Clear();
CFMSHDInputForm->InputTime->Clear();
CFMSHDInputForm->TelephoneNumber->Clear(); }
void Problem::New() {
CFMSHDDataModuleForm->ProblemDataSource->DataSet->Open();
CFMSHDDataModuleForm->ProblemTable->Last();

NumberSet(CFMSHDDataModuleForm->ProblemTable->FieldByName("Number")->AsInteger);
number++;
CFMSHDInputForm->Number->Text = IntToStr(number);
CFMSHDInputForm->InputDate->Text = DateToStr(Date());
CFMSHDInputForm->InputTime->Text = TimeToStr(Time());
CFMSHDInputForm->ConsultantAllocated->SetFocus();
CFMSHDDataModuleForm->ProblemDataSource->DataSet->Close();
}
void Problem::Set() {
NumberSet(StrToInt(CFMSHDInputForm->Number->Text));
if (CFMSHDInputForm->Summary->Text != "")
SummarySet(CFMSHDInputForm->Summary->Text);
else {
MessageBox(NULL, "You must enter data in the Summary field",
"Warning", MB_OK);
CFMSHDInputForm->Summary->SetFocus(); }
DescriptionSet(""); //CFMSHDInputForm->Description->Text);
ErrorMessageSet(""); //CFMSHDInputForm->ErrorMessage->Text);
if (CFMSHDInputForm->Priority->Text != "")
PrioritySet(CFMSHDInputForm->Priority->Text);
else {
MessageBox(NULL, "You must enter data in the Priority field",
"Warning", MB_OK);
CFMSHDInputForm->Priority->SetFocus(); }
if (CFMSHDInputForm->ConsultantAllocated->Text != "")

ConsultantAllocatedSet(CFMSHDInputForm->ConsultantAllocated->Text);
else {
MessageBox(NULL, "You must enter data in the Consultant
Allocated field", "Warning", MB_OK);
CFMSHDInputForm->ConsultantAllocated->SetFocus(); }
InputDateSet(CFMSHDInputForm->InputDate->Text);
InputTimeSet(CFMSHDInputForm->InputTime->Text); }
void Problem::GetLast() {
CFMSHDDataModuleForm->ProblemDataSource->DataSet->Open();
CFMSHDDataModuleForm->ProblemTable->Last();

NumberSet(CFMSHDDataModuleForm->ProblemTable->FieldByName("Number")->AsInteger);
CFMSHDForm->Number->Text = IntToStr(number);

SummarySet(CFMSHDDataModuleForm->ProblemTable->FieldByName("Summary")->AsString);
CFMSHDForm->Summary->Text = summary;

DescriptionSet(CFMSHDDataModuleForm->ProblemTable->FieldByName("Description")->AsString);
CFMSHDForm->Description->Text = description;

ErrorMessageSet(CFMSHDDataModuleForm->ProblemTable->FieldByName("ErrorMessage")->AsString);
CFMSHDForm->ErrorMessage->Text = errorMessage;

PrioritySet(CFMSHDDataModuleForm->ProblemTable->FieldByName("Priority")->AsString);
CFMSHDForm->Priority->Text = priority;

ConsultantAllocatedSet(CFMSHDDataModuleForm->ProblemTable->FieldByName("ConsultantAllocated")->AsString);
CFMSHDForm->ConsultantAllocated->Text = consultantAllocated;

InputDateSet(CFMSHDDataModuleForm->ProblemTable->FieldByName("InputDate")->AsString);
CFMSHDForm->InputDate->Text = inputDate;

InputTimeSet(CFMSHDDataModuleForm->ProblemTable->FieldByName("InputTime")->AsString);
CFMSHDForm->InputTime->Text = inputTime;
CFMSHDDataModuleForm->ProblemDataSource->DataSet->Close();
}
void Problem::Update() {
TDatabase *CFMSHDDatabase = Session->OpenDatabase("Paradox
CFMSHD");
TParams *stmtParams = new TParams();
String SQLstmt;
try {
CFMSHDDatabase->Connected = true;
try {
stmtParams->CreateParam(ftInteger, "NumberParam", ptInput);
stmtParams->ParamByName("NumberParam")->AsInteger = number; }
catch(EDatabaseError &e) {
throw EDatabaseError(e.Message); }
try {
stmtParams->CreateParam(ftString, "SummaryParam", ptInput);
stmtParams->ParamByName("SummaryParam")->AsString = summary; }
catch(EDatabaseError &e) {
throw EDatabaseError(e.Message); }
try {
stmtParams->CreateParam(ftMemo, "DescriptionParam", ptInput);
stmtParams->ParamByName("DescriptionParam")->AsMemo =
description; }
catch(EDatabaseError &e) {
throw EDatabaseError(e.Message); }
try {
stmtParams->CreateParam(ftString, "ErrorMessageParam",
ptInput);
stmtParams->ParamByName("ErrorMessageParam")->AsString =
errorMessage; }
catch(EDatabaseError &e) {
throw EDatabaseError(e.Message); }
try {
stmtParams->CreateParam(ftString, "PriorityParam", ptInput);
stmtParams->ParamByName("PriorityParam")->AsString = priority;
}
catch(EDatabaseError &e) {
throw EDatabaseError(e.Message); }
try {
stmtParams->CreateParam(ftString, "ConsultantAllocatedParam",
ptInput);
stmtParams->ParamByName("ConsultantAllocatedParam")->AsString =
consultantAllocated; }
catch(EDatabaseError &e) {
throw EDatabaseError(e.Message); }
try {
stmtParams->CreateParam(ftString, "InputDateParam", ptInput);
stmtParams->ParamByName("InputDateParam")->AsString =
inputDate; }
catch(EDatabaseError &e) {
throw EDatabaseError(e.Message); }
try {
stmtParams->CreateParam(ftString, "InputTimeParam", ptInput);
stmtParams->ParamByName("InputTimeParam")->AsString =
inputTime; }
catch(EDatabaseError &e) {
throw EDatabaseError(e.Message); }
try {
SQLstmt = "UPDATE Problem.DB SET";
SQLstmt += " Summary = :SummaryParam";
SQLstmt += ",Description = :DescriptionParam";
SQLstmt += ",ErrorMessage = :ErrorMessageParam";
SQLstmt += ",Priority = :PriorityParam";
SQLstmt += ",ConsultantAllocated = :ConsultantAllocatedParam";
SQLstmt += ",InputDate = :InputDateParam";
SQLstmt += ",InputTime = :InputTimeParam";
SQLstmt += " WHERE Number = :NumberParam";
}
catch(EDatabaseError &e) {
throw EDatabaseError(e.Message); }
try {
CFMSHDDatabase->Execute(SQLstmt, stmtParams, false, NULL); }
// **** Fails here! *****
catch(EDatabaseError &e) {
throw EDatabaseError(e.Message); }
CFMSHDDatabase->Session->Close(); }
__finally {
delete stmtParams; }
}
void Problem::SetUpdate() {
NumberSet(StrToInt(CFMSHDForm->Number->Text));
SummarySet(CFMSHDForm->Summary->Text);
DescriptionSet(CFMSHDForm->Description->Text);
ErrorMessageSet(CFMSHDForm->ErrorMessage->Text);
PrioritySet(CFMSHDForm->Priority->Text);
ConsultantAllocatedSet(CFMSHDForm->ConsultantAllocated->Text);
InputDateSet(CFMSHDForm->InputDate->Text);
InputTimeSet(CFMSHDForm->InputTime->Text); }

**** Fails here! **** is the point of failure. I appreciate receiving
assistance. I am using Borland C++ Builder 5 via Windows ME.

I am calling method: 'Update' from class: 'Problem' via the Save button
on Form: 'CFMSHDForm' as indicated by the code below:-

void __fastcall TCFMSHDForm::SaveClick(TObject *Sender)
{
Problem *aProblem = new Problem;
try
{
aProblem->SetUpdate();
aProblem->Update();
aProblem->Clear();
}
__finally
{
delete aProblem;
}

The header: Problem.h is shown below:-

//---------------------------------------------------------------------------
#ifndef ProblemH
#define ProblemH
//---------------------------------------------------------------------------
#endif

class Problem
{
public:
int number;
AnsiString summary;
AnsiString description;
AnsiString errorMessage;
AnsiString priority;
AnsiString consultantAllocated;
AnsiString inputDate;
AnsiString inputTime;
public:
void NumberSet(int aNumber);
int NumberGet();
void SummarySet(AnsiString aSummary);
AnsiString SummaryGet();
void DescriptionSet(AnsiString aDescription);
AnsiString DescriptionGet();
void ErrorMessageSet(AnsiString anErrorMessage);
AnsiString ErrorMessageGet();
void PrioritySet(AnsiString aPriority);
AnsiString PriorityGet();
void ConsultantAllocatedSet(AnsiString aConsultantAllocated);
AnsiString ConsultantAllocatedGet();
void InputDateSet(AnsiString anInputDate);
AnsiString InputDateGet();
void InputTimeSet(AnsiString anInputTime);
AnsiString InputTimeGet();
void Put();
void Get();
void Clear();
void New();
void Set();
void GetLast();
void SetUpdate();
void Update();
};

Thanks.

Regards,
csg
Back to top
Display posts from previous:   
Post new topic   Reply to topic    BorlandTalk.com Forum Index -> C++ Builder Databases All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.