Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с с запросом по БД.

28K
12 марта 2008 года
jengish
18 / / 12.03.2008
БД работает на SQL Server 2000.
Ошибка: Invalid field Name.
procedure TForm1.Button1Click(Sender: TObject);
var
fam: string[30];
begin
fam:=InputBox('выборка из БД.', '');
if fam <> ''
then
begin
with form1.Query1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT raion, fio, number, zayav');
SQL.Add('FROM ":Passport:test_base.dbo"');
SQL.Add('WHERE');
SQL.Add('(Fio = "'+ fam + '")');
SQL.Add('ORDER BY number, Fio');
Open;
end;

if Query1.RecordCount <> 0 then
DataSource1.DataSet:=Query1
else begin
ShowMessage('нет записей.');
DataSource1.DataSet:=Table1;
end;
end;
end;
247
12 марта 2008 года
wanja
1.2K / / 03.02.2003
А какие в табличке имена полей? Кстати, у тебя в одном месте написано 'fio', а в другом 'Fio', может эта БД регистр учитывает?
11
12 марта 2008 года
oxotnik333
2.9K / / 03.08.2007
Ошибка: Invalid field Name.
обычно указывается какое Field Name инвалидом считается
ЗЫ: лучше параметризированный запрос использовать
 
Код:
SQL.Add('(Fio = "'+ fam + '")');
переписать
SQL.Add('Fio =:fam');
...
...
SQL.Parametrs.ParamByName("fam").Value =:fam;
28K
12 марта 2008 года
jengish
18 / / 12.03.2008
Цитата: wanja
А какие в табличке имена полей? Кстати, у тебя в одном месте написано 'fio', а в другом 'Fio', может эта БД регистр учитывает?



в табличке имя полей: raion, fio, number, zayav.

еще показывает ошибку что не найдено таблица test_base.dbo

28K
12 марта 2008 года
jengish
18 / / 12.03.2008
Я написал в запросе фамилию Иванов, выводит такую ошибку на рисунке
6
12 марта 2008 года
George
4.1K / / 05.01.2007
Не уверен, но кажется ты пытаешься обратиться к столбцу "Иванов". А такого у тебя нет.
[highlight=Delphi]
procedure TForm1.Button1Click(Sender: TObject);
var
fam: string[30];
begin
fam:=InputBox('выборка из БД.', '');
if fam <> '' then
begin
with form1.Query1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT raion, fio, number, zayav');
SQL.Add('FROM ":Passport:test_base.dbo"');
SQL.Add('WHERE Fio=:pFam');
SQL.Add('ORDER BY number, Fio');
Prepared:=true;
Parameters.ParamByName('pFam').Value:=fam;
Open;
end;[/highlight]
Так пробуй
28K
12 марта 2008 года
jengish
18 / / 12.03.2008
Thanks получилась.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог