Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2011, 18:20   #1
BanzoO
Пользователь
 
Аватар для BanzoO
 
Регистрация: 02.07.2009
Сообщений: 45
По умолчанию Delphi+Access: ADOTable

Использую ADOConnection, DataSource, ADOTable,DBGrid.
Устанавливаю связь ADOConnection (jet 4) с акцесс файлом жму проверить, всё норм. Дальше DataSource с ADOTable. ADOTable в поле TableName нечего нету. Что я не так делаю? может я не правильно создаю таблицу в акцессе?
я и через конструктор и через мастера создавал.
BanzoO вне форума Ответить с цитированием
Старый 20.08.2011, 19:38   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Дальше DataSource с ADOTable.
А ADOTable с ADOConnection связал?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.08.2011, 20:45   #3
BanzoO
Пользователь
 
Аватар для BanzoO
 
Регистрация: 02.07.2009
Сообщений: 45
По умолчанию

Спасибо за подсказку.

Терь вопрос у меня есть таблица <info> и поля. как сделать запрос?
делаю так, крашится.
Код:
ADOQuery1.Close;
ADOQuery1.SQL.Text:='select * from info';
ADOQuery1.Open;
Form1.Label17.Caption:=ADOQuery1.FieldByName('Группа').AsString;
BanzoO вне форума Ответить с цитированием
Старый 20.08.2011, 21:10   #4
AlexanderKs
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 60
По умолчанию

Код:
ADOQuery1.Active:=false;
ADOQuery1.SQL.Text:='select * from info';
ADOQuery1.Active:=true;
ADOQuery1.First;
Form1.Label17.Caption:=ADOQuery1.FieldByName('Группа').AsString;
Читать дальше в цикле от 1 до ADOQuery1.RecordCount перемещаясь
по строке: ADOQuery1.Next;

Последний раз редактировалось AlexanderKs; 20.08.2011 в 21:45.
AlexanderKs вне форума Ответить с цитированием
Старый 20.08.2011, 21:22   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

AlexanderKs, мимо!
Совет абсолютно неправильный!

1) ADOQuery1.Active:=true;
Это ТОЧНО тоже же самое, что и ADOQuery1.Open;

2) После открытия датасета он и так устанавливается на первую запись!


BanzoO
Ошибка какая?

а записи в таблице info вообще есть?
после открытия сделайте так
Код:
ADOQuery1.Open;
if ADOQuery1.RecordCount = 0 then ShowMessage('Нет записей!')
else
  Label17.Caption:=ADOQuery1.FieldByName('Группа').AsString;
В таблице есть поле с именем Группа ?

Ещё характерная ошибка.
Двойным щелчком в DesignTime по AdoQuery1 и проверьте,
может быть вы какое-то поле вытащили в список полей..
Тогда выделите все поля и удалите!

И последнее. Зачем Вы указываете для Label7 форму (Form1) ?
Набор данных и его открытие происходит на другой форме? Может быть, у Вас Form1 отсутствует?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.08.2011, 21:32   #6
AlexanderKs
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 60
По умолчанию

Бывает, ошибаюсь, как же без этого
Но код всегда проверяю.
Не пользуюсь Open потому что на практике метод часто выдавал ошибку. С Active всегда работало.
Если в результате нет записей, цикл от 1 до 0 (for) не запустится
При получении набора записей в результате запроса указатель находится на последней строке
Проверка, есть ли атрибут "Группа" - спрятать Active:=true в блок try и обрабатывать исключения

Последний раз редактировалось AlexanderKs; 20.08.2011 в 21:40.
AlexanderKs вне форума Ответить с цитированием
Старый 20.08.2011, 21:43   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
до ADOQuery1.RecordCount перемещаясь
Не рекомендуется, потому как не всеми провайдерами поддерживается.
Лучше всего на eof проверять.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.08.2011, 21:55   #8
BanzoO
Пользователь
 
Аватар для BanzoO
 
Регистрация: 02.07.2009
Сообщений: 45
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
AlexanderKs, мимо!
Совет абсолютно неправильный!

1) ADOQuery1.Active:=true;
Это ТОЧНО тоже же самое, что и ADOQuery1.Open;

2) После открытия датасета он и так устанавливается на первую запись!


BanzoO
Ошибка какая?

а записи в таблице info вообще есть?
после открытия сделайте так
Код:
ADOQuery1.Open;
if ADOQuery1.RecordCount = 0 then ShowMessage('Нет записей!')
else
  Label17.Caption:=ADOQuery1.FieldByName('Группа').AsString;
В таблице есть поле с именем Группа ?

Ещё характерная ошибка.
Двойным щелчком в DesignTime по AdoQuery1 и проверьте,
может быть вы какое-то поле вытащили в список полей..
Тогда выделите все поля и удалите!

И последнее. Зачем Вы указываете для Label7 форму (Form1) ?
Набор данных и его открытие происходит на другой форме? Может быть, у Вас Form1 отсутствует?!
Спасибо разобрался RAD XE у меня галит, перезапустил работает всё.

Код:
ADOTable1.Edit;
ADOTable1.FieldByName('Группа').Value := Edit3.Text;
как сделать, чтоб изменения сохранялись?

Последний раз редактировалось Stilet; 20.08.2011 в 22:52.
BanzoO вне форума Ответить с цитированием
Старый 20.08.2011, 22:50   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
ADOTable1.Post
И бегом учить мануалы по этим компонентам и технологиям!
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.08.2011, 22:58   #10
BanzoO
Пользователь
 
Аватар для BanzoO
 
Регистрация: 02.07.2009
Сообщений: 45
По умолчанию

спасибо, я не прогаю на делфи. Это летняя практика
BanzoO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с MS access+ADOtable jziiiiiii БД в Delphi 7 12.07.2010 08:11
БД Access и Delphi Poltev86 БД в Delphi 3 25.05.2010 09:26
как Microsoft Access(ADOConnection ADOTable DataSource DBGrid) переделать под mySQL? Levsha100 БД в Delphi 6 23.05.2009 19:48
Как копировать данные из ADOTable в ADOTable? mauar БД в Delphi 1 10.05.2008 16:05
Delphy и Access.вводя инфу во вторичный файл Access, она отражалась в первом ADOTable Lev БД в Delphi 0 11.11.2007 12:14