tmp.printf("SELECT * FROM %s WHERE %s LIKE \"%s\%\"",
ExtractFileName(OpenDialog1->FileName),
ComboBox1->Text.c_str(),
Edit1->Text.c_str());
ComboBox есть проблема.
Я создаю динамически базу данных.
И мне надо чтобы все столбцы этой базы были видны в combobox.
И ещё вопросик.
Как сделать чтобы эти же поля отображались в
Form1->Query1->SQL.
Заранее спасибо.
Query1->SQL->Text = "select * from post";
Query1->Open();
Query1->First();
for(int i = 0; i < Query1->Fields->Count; i++)
ComboBox1->Items->Add(Query1->Fields->Fields->FieldName);
Query1->Close();
Но остаётся вопрос как эти же столбцы
добавить в Query1->SQL
т.е поместить запрос к этой базе что-то вроде
(перечисление полей SELECT * FROM некая база)
строки в Query1->SQL пытаюсь прописать так
Query1->Active = false;
Query1->DatabaseName = Table1->DatabaseName;
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("SELECT * FROM название базы");
Query1->Active = true;
как можно сделать чтобы при открытии ДБ ее название попадало бы в
SELECT * FROM XXX - в это место".
Т.к название базы постоянно меняется и меняется соответсвенно и поля и их количество.
Пытался заполнить Query1->SQL таким циклом
for (iCounter = 0; iCounter < Query1->SQL->Count - 1; iCounter++)
{ Query1->SQL->Strings[iCounter];}
Но пишет что база не определена.
Как быть?
Query1->Close();
Query1->SQL->Text = "select * from "+ComboBox1->Text;
Query1->Open();
Я открываю БД
Table1->DatabaseName = "c:";
Table1->TableName = OpenDialog1->FileName;
После чего мне надо чтобы имя базы попало в
Query1->SQL->Text = "select * from" + i;
где i - имя базы.
пытался AnsiString i = Table1->TableName;
и так пробовал
Query1->SQL->Text = "select * from" + OpenDialog1->FileName;
Пытался
Query1->SQL->Add("select * from " + Table1->TableName);
Но не получается постоянно ошибка.
Где ошибка?
Вот этот код должен работать
if(OpenDialog1->Execute())
{
Query1->DatabaseName = ExtractFilePath(OpenDialog1->FileName);
Query1->SQL->Text = "select * from" + ExtractFileName(OpenDialog1->FileName);
Query1->Open();
}
Большое спасибо. Не знаю как вас благодарить.
Если не сложно, не подскажете ещё, как информацию,
хранящуюся в DBGride отправить на печать.
Всю информацию или только выделенные строки (мультиселект)?
+ ExtractFileName(OpenDialog1->FileName);
вставить в середину SQL запроса?
tmp.printf("SELECT * FROM XXX WHERE %s LIKE \"%s\%\"",ComboBox1->Text.c_str(),Edit1->Text.c_str());
Вместо XXX
Цитата:
Originally posted by shur_a1981
Подскожите ещё пожалуйста как это
+ ExtractFileName(OpenDialog1->FileName);
вставить в середину SQL запроса?
tmp.printf("SELECT * FROM XXX WHERE %s LIKE \"%s\%\"",ComboBox1->Text.c_str(),Edit1->Text.c_str());
Вместо XXX
Подскожите ещё пожалуйста как это
+ ExtractFileName(OpenDialog1->FileName);
вставить в середину SQL запроса?
tmp.printf("SELECT * FROM XXX WHERE %s LIKE \"%s\%\"",ComboBox1->Text.c_str(),Edit1->Text.c_str());
Вместо XXX
Используй функцию StringReplace.
Про нее все в хелпе описано, но на всякий случай
[COLOR=darkblue]
String result = StringReplace(" Это строка где мы заменим цифру 1", "Yf 'ne cnhjre vs tt pfvtybv","1", TReplaceFlags()<<rfReplaceAll);
[/COLOR]
А по поводу печати. Тебе нужно или самому формировать страницу для принтера или использовать QuickReport, FastReport для создания отчета. Так же обрати внимание на грид EhLib - он позваляет печатать данные из грида
Цитата:
Originally posted by shur_a1981
Подскожите ещё пожалуйста как это
+ ExtractFileName(OpenDialog1->FileName);
вставить в середину SQL запроса?
tmp.printf("SELECT * FROM XXX WHERE %s LIKE \"%s\%\"",ComboBox1->Text.c_str(),Edit1->Text.c_str());
Вместо XXX
Подскожите ещё пожалуйста как это
+ ExtractFileName(OpenDialog1->FileName);
вставить в середину SQL запроса?
tmp.printf("SELECT * FROM XXX WHERE %s LIKE \"%s\%\"",ComboBox1->Text.c_str(),Edit1->Text.c_str());
Вместо XXX
Так будет лучше всего:
Код:
Так как ты написал заработало.