Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];

Вниз

Ошибка с SQL запросом !! ((   Найти похожие ветки 

 
Alpine   (2003-02-10 14:13) [0]

Коороче делаю так ...
chk :=false;
PriceQuery.Close;
PriceQuery.Open;
for i:=0 to PriceQuery.FieldCount-1 do
if PriceQuery.Fields.Fields[i].FieldName = "ID" then chk:=true;
if chk=false then
begin
PriceQuery.Close ;
PriceQuery.SQL.Clear;
PriceQuery.SQL.Add("ALTER TABLE "PRICE.DBF"");
PriceQuery.SQL.Add("ADD ID CHARACTER(10)");
PriceQuery.Open;
Выдаёт ошибку (( ... Первый раз когда нету поля ID пишет "Error creating cursor handle" ... А второй раз после того как поле создалось пишет "TABLE IS BUSY" ... Помогитееее


 
stone   (2003-02-10 14:29) [1]

PriceQuery.ExecSQL;


 
alpine   (2003-02-10 14:37) [2]

А нельзя подругому делать проверку таблицы на наличие определённого поля ?


 
stone   (2003-02-10 14:43) [3]

В данном случае можно вообще не делать

try
PriceQuery.Close ;
PriceQuery.SQL.Clear;
PriceQuery.SQL.Add("ALTER TABLE "PRICE.DBF"");
PriceQuery.SQL.Add("ADD ID CHARACTER(10)");
PriceQuery.ExecSQL;
except
on Exception do
Application.HandleException(Self);
end;

а вообще проверяется так:
if PriceQuery.Fields.FindField("ID") <> nil then
...


 
Johnmen   (2003-02-10 14:46) [4]

try
<попытка что-то считать из поля>
except
<поле отсутствует !>
end


 
MsGuns   (2003-02-10 16:56) [5]

Если НД - таблица, то для проверки наличия определенного поля можно обойтись безо всяких запросов:

procedure CheckFieldExist(tb: TTable; FldName: string): boolean;
var
sl: TStrings;
begin
result := false;
sl := TStringList.Create;
tb.DataBase.GetFieldNames(tb.TableName,sl);
if sl.IndexOf(FldName)>-1 then result := true;
end;


 
alpine   (2003-02-10 17:42) [6]

Делаю так ..
try
PriceQuery.FieldByName("ID").AsString;
except begin
PriceQuery.Close ;
PriceQuery.SQL.Clear;
PriceQuery.SQL.Add("ALTER TABLE "PRICE.DBF"");
PriceQuery.SQL.Add("ADD ID CHARACTER(10)");
PriceQuery.ExecSQL;
end;
Не находит поле ID ... Доходит до запроса и выдаёт ошибку "Table busy" ... Нажимаю ок ... Загружается программа и таблица закрыта ! Что делать ???? Хелп плизззз !


 
Smashich   (2003-02-10 17:51) [7]

какая таблица закрыта можно спросить? не вижу вообще здесь таблиц...очевидно где то они есть...вот где используешь TTable - там и ошибка, как мне кажется


 
alpine   (2003-02-10 17:56) [8]

Таблица парадокс ... PriceQuert типа TQuery ! Вот он и закрыт !


 
Smashich   (2003-02-10 18:01) [9]

где то ты уже открыл таблицу TTable или TQuery или я уже не знаю чем, но открыл! и не закрыл! в том куске кода на который ты ругаися ошибок нет...


 
MsGuns   (2003-02-10 18:05) [10]

Да она у него в оболочке небось открыта (св-во Active:=true) или нечто в этом роде !



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
1-87473
Stager
2003-02-19 00:27
2003.02.27
Проверка строки по маске


7-87727
Uka
2002-12-30 10:54
2003.02.27
Люди добрые!


14-87634
Карелин Артем
2003-02-10 16:08
2003.02.27
Заработаем?


1-87461
Alexandr3
2003-02-18 22:16
2003.02.27
RXLoginDialog


1-87545
Антон.
2003-02-17 11:27
2003.02.27
Кто нибудь знает зачем может использоваться qtintf70.dll





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский