Вопрос № 122687: Есть ли предопределенные обработчики исключительных ситуаций при отправки письма и где их можно увидеть чтобы прописать в коде программы?
Например при отправки письма на несуществующий адрес
у меня в программе генерится просто Exception а мне...Вопрос № 122775: Уважаемые эксперты!!!У меня проблемка связанная с БД.
У меня ADOQuery с помощью SQL ищет в БД строки с заданным значением по определенному полю. Результат нормально выводит в Grid. Но я хочу этот результат(одно поле) задать в выпадающий список дл...
Вопрос № 122.687
Есть ли предопределенные обработчики исключительных ситуаций при отправки письма и где их можно увидеть чтобы прописать в коде программы?
Например при отправки письма на несуществующий адрес
у меня в программе генерится просто Exception а мне нужно что бы я мог распознать что ошибка именно из за не верного адреса. Спасибо.
Отвечает: Selya
Здравствуйте, Volniy_Strelok!
Нет, предопределённых обработчиков исключительных ситуаций таконо типа нет. Чтобы найти все описания существующих Exeption'ов напишите в редакторе кода слово Exception и нажмите на нём F1.
Может быть вы используете какой-нибудь компонент для отправки почты и в нём есть какой-либо аодобный класс Exception'ов.
Несложно создать самому какой-нибудь EMailSendException = class(Exception)
Ответ отправил: Selya (статус: 7-ой класс)
Ответ отправлен: 11.02.2008, 16:19
Вопрос № 122.775
Уважаемые эксперты!!!У меня проблемка связанная с БД.
У меня ADOQuery с помощью SQL ищет в БД строки с заданным значением по определенному полю. Результат нормально выводит в Grid. Но я хочу этот результат(одно поле) задать в выпадающий список для выбора. Чтоб потом при выборе одной строки из этого поля выделить соответствующую ему строку из другого поля и присвоить к переменной X.
Заранее Спасибо!
Отправлен: 12.02.2008, 08:59
Вопрос задал: Соловьев (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Drbear
Здравствуйте, Соловьев!
Попробуйте сделать примерно так:
...
ADOQuery.Open;
ComboBox.Items.Add(ADOQuery.FieldByName('Ваше_поле ').AsString);
..
затем на событие OnChange у ComboBox:
...
x := ComboBox.Items[ComboBox.ItemIndex];
ADOQuery1.Locate('Ваше_поле_2', x, [loCaseInsensitive, loPArtialKey]);
...
Ответ отправил: Drbear (статус: 7-ой класс)
Ответ отправлен: 12.02.2008, 10:35 Оценка за ответ: 4
Отвечает: Delph
Здравствуйте, Соловьев!
Я в таких случаях создаю массив по такому образцу: var Arr: Array of Record
ID_Field: Integer;
StrField: String;
end;
Далее в программе пишу такой код: ComboBox1.Items.Clear;
ADOQuery1.SQL.Text := 'SELECT ID_Field, StrField FROM Table_Name ORDER BY Table_Name';
ADOQuery1.Open;
SetLength(Arr, ADOQuery.RecordCount);
for i := 1 to ADOQuery.RecordCount do
begin
ADOQuery.RecNo := i;
Arr[i-1].ID_Field := ADOQuery.FieldByName('ID_Field').AsInteger;
Arr[i-1].StrField := ADOQuery.FieldByName('StrField').AsString;
ComboBox1.Items.Add(ADOQuery.FieldByName('StrField').AsString);
end;
ADOQuery1.Close;
Разумеется, название таблицы и имена полей в этом примере я взял с потолка, Вам в запросе нужно подставить реальные. Названия полей в массиве и в таблице могут быть как одинаковыми, так и разными - это как Вам удобнее.
Теперь можно получить значение ключевого поля, соответствующее выбранной в ComboBox'е строке: X := Arr[ComboBox1.ItemIndex].ID_Field;
Ну а что с этим значением делать - решайте исходя из Вашей задачи.
--------- Сомневайся во всём! Реальность часто бывает не такой, как мы о ней думаем.
Ответ отправил: Delph (статус: Студент)
Ответ отправлен: 12.02.2008, 15:08 Оценка за ответ: 5 Комментарий оценки: Спасибо! По вашему ответу сразу сообразил, как всё сделать!