C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
sql-запросы и диск, Проблема
virt------------
Отправлено: 27.02.2007, 19:54


Ученик-кочегар

Группа: Участник
Сообщений: 15



Суть...
Прога работает с диска
База локальная — парадокс7
если обращатся через ттаble — все работает
если через квери  — "нехватка места на диске"
с жесткого все работает нормально

Помогите решить проблему
Gedeon
Отправлено: 28.02.2007, 10:20


Ветеран

Группа: Модератор
Сообщений: 1742



Попробуйте после запуска установить текущую директорию приложения на C:\Windows\Temp
Admin
Отправлено: 28.02.2007, 14:24


Владимир

Группа: Администратор
Сообщений: 1190



Потому как при запросе происходит попытка создания временных
файлов на диске, не получается, вот и вылетает это сообщение.
virt------------
Отправлено: 28.02.2007, 20:48


Ученик-кочегар

Группа: Участник
Сообщений: 15



Спасибо... не знал...
Сегодня попробую
Admin
Отправлено: 28.02.2007, 22:10


Владимир

Группа: Администратор
Сообщений: 1190



Кажется нужно подключить Query через Database
а у Database установить свойство ReadOnly в true.

QUOTE
A ReadOnly property value of true should be used when accessing a dBASE or Paradox database on a read-only storage medium, such as a CD

virt------------
Отправлено: 02.03.2007, 10:48


Ученик-кочегар

Группа: Участник
Сообщений: 15



CODE
AnsiString sql="", and="and",
sql0="select Name from q.db where(",
sqln="(Name like \"%"+LabeledEdit5->Text+"%\")",
sqlt="(Tel like \"%"+LabeledEdit6->Text+"%\")",
sqla="(Adres like \"%"+LabeledEdit7->Text+"%\")",
sqlm="(Mail like \"%"+LabeledEdit9->Text+"%\")",
sqls="(Site like \"%"+LabeledEdit10->Text+"%\")";
bool s1=0;
sql=sql0;
if (LabeledEdit5->Text!="")
{ sql+=sqln; s1=1;}
if (LabeledEdit6->Text!="")
if (s1==1)
sql+=(and+sqlt);
else {sql+=sqlt;s1=1;}
if (LabeledEdit7->Text!="")
if (s1==1)
sql+=(and+sqla);
else {sql+=sqla;s1=1;}
if (LabeledEdit9->Text!="")
if (s1==1)
sql+=(and+sqlm);
else {sql+=sqlm;s1=1;}
if (LabeledEdit10->Text!="")
if (s1==1)
sql+=(and+sqls);
else {sql+=sqls;s1=1;}


Query1->Close();
Query1->SQL->Clear();

sql+=")";
Query1->SQL->Add(sql);
SetCurrentDir("c:\\");
Query1->Open();
Label9->Caption="Найдено:"+IntToStr(Query1->RecordCount);

итог — insufficient disk space

Admin
Попробую

Отредактировано virt------------ — 02.03.2007, 10:48
virt------------
Отправлено: 02.03.2007, 20:01


Ученик-кочегар

Группа: Участник
Сообщений: 15



Решение найдено
RequestLive=true

Всем спасибо.

Отредактировано virt------------ — 02.03.2007, 20:01
virt------------
Отправлено: 09.03.2007, 19:27


Ученик-кочегар

Группа: Участник
Сообщений: 15



и еще один вопрос
как обратится к базе через TQuery если она уже подключена через Tтаble

Вернуться в Работа с базами данных в C++Builder