DiSyA |
Отправлено: 10.02.2006, 22:47 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 7
|
Доброго времени суток !
Имеется БД — Access, там есть три таблицы: Records, Job, Type_CL.
В таблице Job имеются два поля: ID — счётчик (ключ), Type — текстовое.
В таблице Type_CL имеются два поля: Code — счётчик (ключ); Type — текстовое.
В таблице Records имеются четыре поля: ID — счётчик (ключевое); CompanyName — текстовое; Type — числовое, связанное с Code из Type_CL; TypeJob — числовое, связанное с ID из Job.
Таким образом, если в таблице Job: ID Type
1 Установка
2 Переустановка;
т.е таблице Type_CL: Code Type
1 Модем
2 Интернет,
то таблица Records имеет вид, например,
ID CompanyName Type TypeJob
1 ООО "Рога и копыта" модем установка
2 АО "МММ" Интернет переустановка.
Если делаем:
ADOConnection1->Provider="MSDASQL.1";
ADOConnection1->LoginPrompt=false;
ADOQuery1->Connection=ADOConnection1;
DataSource1->DataSet=ADOQuery1;
DBGrid1->DataSource=DataSource1;
DBGrid1->Columns->Add();
DBGrid1->Columns->Items[0]->FieldName="CompanyName";
DBGrid1->Columns->Items[0]->Title->Caption="Клиент";
DBGrid1->Columns->Items[0]->Width=111;
DBGrid1->Columns->Add();
DBGrid1->Columns->Items[1]->FieldName="Type";
DBGrid1->Columns->Items[1]->Title->Caption="Тип клиента";
DBGrid1->Columns->Items[1]->Width=111;
DBGrid1->Columns->Add();
DBGrid1->Columns->Items[2]->FieldName="TypeJob";
DBGrid1->Columns->Items[2]->Title->Caption="Вид работ";
DBGrid1->Columns->Items[2]->Width=111;
ADOConnection1->Close();
ADOConnection1->ConnectionString="DSN=OrgReg";
ADOConnection1->Open();
AnsiString Cmd_sql="SELECT Records.CompanyName, \
Type_CL.Type, Job.Type FROM Records, Type_CL, Job \
WHERE Records.Type=Type_CL.Code AND Records.TypeJob=Job.ID;";
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(Cmd_sql);
ADOQuery1->Active=true;
то имеем вывод в DBGrid
Клиент Тип клиента Вид работ
ООО "Рога и копыта" модем
АО "МММ" Интернет ,
а в столбце "Вид работ" пустота.
В связи с этим, наконец-то, вопрос: почему туда нифига не выводится и как это побороть??? И вообще что делаю не так в этой жизни ? Научите уму-разуму пожалуйста !!!
|
|
olegenty |
Отправлено: 13.02.2006, 07:11 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
Ну так у тебя в результирующем наборе нет поля "TypeJob", а ты пытаешься вывести его в последней колонке. Грид не д-к, если имя поля не совпадает с FieldName колонки, он его показывать не будет. У тебя третье поле Job.Type, т.е. по сути, поля второе и третье имеют одно имя.
|
|
DiSyA |
Отправлено: 13.02.2006, 11:23 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 7
|
Пасибочки, проблемс разрешился. |
|
DiSyA |
Отправлено: 13.02.2006, 17:07 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 7
|
А исчо такой вопросик: почему-то при копировании из того же грида (а в общем-то хоть откуда с формы: из едита и т.д.) и вставке в Ворд, Эксель или блокнот образуются кракозябры !!! Как это подлечить, подскажите пожалуйста ! |
|
Valdemar |
Отправлено: 13.02.2006, 17:22 |
|
Мастер участка
Группа: Участник
Сообщений: 433
|
А если перед копированием в буфер переключиться на русский, то все нормально. |
|