Here is the entire block of code. The database it is getting the info from is an MS Access database and the rented field is a Date/Time datatype.
Code:
void __fastcall TMainForm::SearchResultsListBoxClick(TObject *Sender)
{
TADOQuery *searchQuery = new TADOQuery(this);
if(searchQuery)
{
searchQuery->Connection = DataModule1->ADOConnection1;
if(search_type == 0)
{
searchQuery->SQL->Text = "SELECT * FROM accounts WHERE uid = "+IntToStr((int)this->SearchResultsListBox->Items->Objects[this->SearchResultsListBox->ItemIndex]);
searchQuery->Active = true;
if(searchQuery->Active && searchQuery->RecordCount > 0)
{
this->SearchNameEdit->Text = searchQuery->FieldByName("contact_name")->AsString;
this->SearchAddressEdit->Text = searchQuery->FieldByName("street")->AsString;
this->SearchTownEdit->Text = searchQuery->FieldByName("town")->AsString;
this->SearchCityEdit->Text = searchQuery->FieldByName("city")->AsString;
this->SearchPostcodeEdit->Text = searchQuery->FieldByName("postcode")->AsString;
this->SearchTelephoneEdit->Text = searchQuery->FieldByName("telephone")->AsString;
}
}
else if(search_type == 1)
{
searchQuery->SQL->Text = "SELECT * FROM videos WHERE uid = "+IntToStr((int)this->SearchResultsListBox->Items->Objects[this->SearchResultsListBox->ItemIndex]);
searchQuery->ParamCheck = false;
searchQuery->Active = true;
if(searchQuery->Active && searchQuery->RecordCount > 0)
{
this->SearchTitleEdit->Text = searchQuery->FieldByName("title")->AsString;
searchQuery->Active = false;
searchQuery->SQL->Text = "SELECT Genres.* FROM Genres, Videos WHERE ((Genres.uid)=[Videos].[Genre_ID]) AND videos.uid = "+IntToStr((int)this->SearchResultsListBox->Items->Objects[this->SearchResultsListBox->ItemIndex]);
searchQuery->Active = true;
this->SearchGenreEdit->Text = searchQuery->FieldByName("name")->AsString;
searchQuery->Active = false;
searchQuery->SQL->Text = "SELECT stock.* FROM stock, Videos WHERE ((stock.uid)=[Videos].[in_stock]) AND videos.uid = "+IntToStr((int)this->SearchResultsListBox->Items->Objects[this->SearchResultsListBox->ItemIndex]);
searchQuery->Active = true;
this->SearchStockEdit->Text = searchQuery->FieldByName("stock_status")->AsString;
searchQuery->Active = false;
searchQuery->SQL->Text = "SELECT accounts.*, loans.returned FROM (loans INNER JOIN videos ON loans.video_uid = videos.uid) INNER JOIN accounts ON loans.member_uid = accounts.uid WHERE (((loans.returned)='0') AND ((accounts.uid)=[loans].[member_uid]) AND ((videos.uid)= " + IntToStr((int)this->SearchResultsListBox->Items->Objects[this->SearchResultsListBox->ItemIndex]) + "))";
searchQuery->Active = true;
if(searchQuery->Active && searchQuery->RecordCount > 0)
{
this->SearchLoanEdit->Text = searchQuery->FieldByName("contact_name")->AsString;
}
else
{
this->SearchLoanEdit->Text = "Video not on loan";
}
searchQuery->Active = false;
searchQuery->SQL->Text = "SELECT * FROM loans WHERE video_uid = "+IntToStr((int)this->SearchResultsListBox->Items->Objects[this->SearchResultsListBox->ItemIndex]) + " AND returned = '0'";
searchQuery->Active = true;
if(searchQuery->Active && searchQuery->RecordCount > 0)
{
this->SearchLoanStartEdit->Text = searchQuery->FieldByName("rented")->AsString();
}
else
{
this->SearchLoanStartEdit->Text = "Video not on loan";
}
}
}
}
delete searchQuery;
}
The error isnt a compiler error, It's a popup dialog error which says "Data type mismatch in criteria expression"
Thanks