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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2012, 23:26   #11
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

1. ItemIndex в ComboBox c 0 отчет ведет, а не с 1
2. Как только из середины таблицы удалите запись, то вся ваша задумка коту под хвост. Так с идентификаторами записей не работают
3. А если 1000 записей в таблице - тоже ComboBox?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.01.2012, 21:49   #12
Seva2011
Пользователь
 
Регистрация: 07.12.2011
Сообщений: 31
По умолчанию

извиняюсь за навязчивость, но я так и не могу с этим разобраться. кто нибудь подскажите пожалуйста решение проблемы реальным кодом...
Seva2011 вне форума Ответить с цитированием
Старый 15.01.2012, 17:26   #13
Seva2011
Пользователь
 
Регистрация: 07.12.2011
Сообщений: 31
По умолчанию

или ссылочку дайте по работе с одинаковыми записями в бд.
Seva2011 вне форума Ответить с цитированием
Старый 15.01.2012, 19:52   #14
Dexes
Пользователь
 
Регистрация: 27.12.2011
Сообщений: 86
По умолчанию

Глобальный массив
Код:
//Массив соответсвий ID юзеров и индексов
var: UserID: array of integer;
Далее
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
	ADOQuery1.SQL.Clear;
	ADOQuery1.SQL.Add('SELECT * FROM Klients');
	ADOQuery1.Open;
	SetLength(UserID,  ADOQuery1.RecordCount);
	while not AdoQuery1.Eof do
	  begin
		ComboBox3.Items.Add(ADOQuery1.FieldByName('фио').AsString);
		UserID[ComboBox3.Count-1] := ADOQuery1.FieldByName('id').AsInteger;
		ADOQuery1.Next;
	  end;
	ComboBox3.ItemIndex := 1;
	ADOQuery1.Close;
end;

procedure TForm1.ComboBox3Select(Sender: TObject);
begin
	if ComboBox3.ItemIndex>=1 then
	  begin
		ADOQuery1.Close;
		ADOQuery1.SQL.Clear;
		ADOQuery1.SQL.Add('SELECT * FROM Klients WHERE id = '+IntToStr(UserID[comboBox3.ItemIndex]));
		ADOQuery1.Open;
		Edit2.Text:=ADOQuery1.FieldByName('Адрес').AsString;
		Edit3.Text:=ADOQuery1.FieldByName('Телефон').AsString;
		Edit1.Text:=ADOQuery1.FieldByName('П_серия').AsString;
	  end;
end;
1) У тебя Index в ComboBox'е и ID пользователя в базе не соответсвуют. Пойми это. ID у пользователя может быть 100500 а Index в ComboBox'е у него может быть 3 (к примеру)
2) Всегда отслеживай SQL-запрос в отдельном Edit'е, который после отладки уберешь (как в том примере который я тебе засылал по e-mail), это очень сильно помогает. При ошибке, SQL-запросы которые выводятся в Edit'е, обактывай в СУБД, анализируй что выводится и что должно выводится.
3) Не юзай ComboBox.Text, только
ComboBox.Items[i]
или
ComboBox.Items[ComboBox.ItemIndex]
(смотря что нужно вытащить), обращайся к конкретной строке, чтобы не было багов.
4) по Select'у ComboBox'а посмотри сколько записей у тебя выводится после ADOQuery1.Open, ADOQuery1.RecordCount выведи (через ShowMessage например). Кто знает, может быть поле ID в таблице у тебя не уникально и выводится несколько записей.
Пробуй, копайся, разбирайся.
P.S. На будущее: прогу ты предоставил выше, а базы (и даже структуры базы) нету.

Последний раз редактировалось Dexes; 15.01.2012 в 19:57.
Dexes вне форума Ответить с цитированием
Старый 16.01.2012, 18:37   #15
Seva2011
Пользователь
 
Регистрация: 07.12.2011
Сообщений: 31
Хорошо

Dexes, Огромное тебе спасибо!
Seva2011 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
составить схему базы данных на access filip Помощь студентам 3 05.05.2011 23:43
Как подключить бд MS Access 2003 без установки MS Access 2003. ShaevMV БД в Delphi 1 15.09.2010 14:19
как составить функцию Sdeeee Microsoft Office Excel 3 03.02.2010 17:07
Как составить запрос? jeka5555 SQL, базы данных 3 09.09.2009 10:12
Помогите пожалуйста решить две задачи по паскалю и составить и составить блок схему! ...Оленька... Паскаль, Turbo Pascal, PascalABC.NET 2 20.01.2009 09:37