Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi

Автор: SergeyReutov
Дата сообщения: 23.05.2005 11:02
Через компонент ADOQuery можно посылать базе данных запросы.
А как можно проверить вернул ли результат запроса какие-нибудь записи?

Автор: KDA
Дата сообщения: 23.05.2005 12:41
IsEmpty или RecordCount по выбору
Автор: Solnake
Дата сообщения: 23.05.2005 15:55
Народ, помогите, а то я уже задолбался.
Короче работаю с MS SQL Server2000 спользую ADOQuery, и пишу запрос, типа:

Код:
IBQuery4.SQL.Text:='select distinct HOUSE from PROPISKA where STREET="' + ComboBox1.Text + '"';
Автор: YurikGL
Дата сообщения: 23.05.2005 17:09

Цитата:
емы не нравятся "_" ковычки, он видетели хочет '_'.


пользуй такие '

STREET='+#39+ ComboBox1.Text + #39;

Автор: Solnake
Дата сообщения: 23.05.2005 17:31
YurikGL
СПАСИБА, большое :-D (это я так рад).
Я долбусь с этим уже 2-ой день, всй выкручиваюся-выкручиваюся, а теперь никуда не дется.
Ещё раз спасиба.

Respect
Автор: zvyagaaa
Дата сообщения: 23.05.2005 18:56
Господа, а кто-нибудь знает, как пожно написать в caption допустим label'a русскими и греческими буковками, или это невозможно? Допустим, следующий текст : угол гамма, рад.
Автор: YurikGL
Дата сообщения: 23.05.2005 19:46

Цитата:
Господа, а кто-нибудь знает, как пожно написать в caption допустим label'a русскими и греческими буковками, или это невозможно? Допустим, следующий текст : угол гамма, рад.

Подобрать соответствущий шрифт
Автор: zvyagaaa
Дата сообщения: 24.05.2005 04:46
Какой? Если использовать symbol, то нельзя писать русскими буквами.
Автор: evle
Дата сообщения: 24.05.2005 06:26
zvyagaaa
Чтобы одновременно пользоваться и греческими и русскими символами нужен Unicode, а его VCL как-то не очень поддеживает.
Попробуй выводить текст вручную через TextOutW.
Автор: YurikGL
Дата сообщения: 24.05.2005 06:57
>Какой? Если использовать symbol, то нельзя писать русскими буквами.

При большой необходимости, можно и свой сделать.
Автор: Fox0001ww
Дата сообщения: 24.05.2005 10:41
Уважаемые Господа.
Я только начал изучать Delphi 8, но внезапно столкнулся с проблемой. Ниже приведен код консольной программки:

var
a,
b,
sign: Cardinal;

begin
{***********************************}
while a<>0 do begin
Write('Input a: ');
Read(a);
Write('Input b: ');
Read(b);
Write('Operation: ');
Read(sign);
if sign=1 then begin
Write(' **Result: ');
Writeln(a+b);
end else begin
Write(' **Result: ');
Writeln(a-b);
end
end;
end.

После компиляции, выдается такое вот сообщение:

Project Project1.exe encountered unhandled exception class System.NullReferenceException. Process stopped. Use Step or Run to continue.

подскажите пожалуйста, где и что я сделал не так, или может что-то нужно изменить?
Заранее благодарен



Автор: aquaman1977
Дата сообщения: 24.05.2005 12:05
Есть задача автоматической рассылки писем с прикрепленными файлами.
В системе стоит MS Outlook + MS Exchange Server.

При выполнении указанного ниже кода система безопасности Outlook выдает несколько предупредительных окон (что для автоматизации неприемлемо).
Вопрос: можно ли этого избежать, если параметры безопасности мейлера поменять нельзя?

//----cut here-------------------
const
// константы OlItemType
olMailItem = 0;
olAppointmentItem = 1;
olContactItem = 2;
olTaskItem = 3;
olJournalItem = 4;
olNoteItem = 5;
olPostItem = 6;
// константы OlAttachmentType
olByValue = 1;
olByReference = 4;
olEmbeddedItem = 5;
olOLE = 6;

var
myOlApp, myItem, myRecipient, myAttachments: OleVariant;
...
Procedure MyMail(s_addr,s_attach,s_subject:String);
begin
// файл VBScript для создания почтового сообщения и прикрепления к нему файла
myOlApp := CreateOLEObject('Outlook.Application');
myItem := myOlApp.CreateItem(olMailItem);
myItem.Subject := s_subject;
myRecipient := myItem.Recipients.Add(s_addr);
myItem.Body := 'blabla'+#13;
myAttachments := myItem.Attachments;
myAttachments.Add(s_attach, olByValue, 1, Sr.Name+' Attachment');
myItem.Send;
myOlApp := VarNull;
myItem := VarNull;
myRecipient := VarNull;
myAttachments := VarNull;
end;

//------cut here-----------------
Автор: FAngel
Дата сообщения: 24.05.2005 12:57
Fox0001ww
А разве 8 не для .NET ? Там вообще нельзя было скомпилить программу под Win32
Автор: OdesitVadim
Дата сообщения: 24.05.2005 13:51
Fox0001ww

Цитата:
while a<>0 do begin

а кто чуть выше обнулит a. Надеяться на компилятор не стоит. Это независимо от версии.
и во вторых вдо 7 включительно в консольных прогах нужно писать {$APPTYPE CONSOLE}
Автор: krast
Дата сообщения: 24.05.2005 14:30

Цитата:
а кто чуть выше обнулит a. Надеяться на компилятор не стоит. Это независимо от версии.

глобальные переменные обнуляются....
Автор: OdesitVadim
Дата сообщения: 24.05.2005 14:51
krast

Цитата:
глобальные переменные обнуляются....

Но компилятор почемуто говорит

Цитата:

[Warning] Variable 'a' might not have been initialized
Переменная 'a' не была инициализирована.

Я же говорю, не стоит надеяться...
Автор: krast
Дата сообщения: 24.05.2005 15:13
OdesitVadim
то что warning выдается - это говорит токо о том, что варнинг не отслеживает - глоб или нет переменная компилятор генерит код для обнуления глобов во всех версиях Delphi (начиная как минимум с пятой, раньше Delphi не использовал).
Автор: OdesitVadim
Дата сообщения: 24.05.2005 15:21
krast
Каждый варнинг - потенциальная ошибка. Поэтому нужно стараться убирать их. Каждый, кто программит начал лет 10 назад обязательно обнулит. Такой человек взглянув на код скажет "Э, а счем мы сравниваем?". ДОстаточно перенести в другое место, и переменная обнуляться не будет. В ней будет мусор. Долгий будет процес поиска ошибки. И как говорил один человек "Давайте сразу писать правильно, чтобы потом небыло мучительно больно".
И давай не флеймить
Автор: krast
Дата сообщения: 24.05.2005 15:42
OdesitVadim
начнем с того что глобы - это вообще плохо, как бы это ни было. второе - могу привести кучу примеров, где на варнинги совершенно плевать, ибо компилятор просто не разобрался что к чему, вот тогда вступает в бой {$warn}


Цитата:
Такой человек взглянув на код скажет "Э, а счем мы сравниваем?".

ты наверно и лонгстринги обнуляешь перед использованием, и всегда интерфейсы нуллишь после использования... прикольно


Цитата:
И давай не флеймить

хде флейм, топик как называется? ммм... Вопросы по delphi, а мы что обсуждаем - вопросы по delphi
Автор: OdesitVadim
Дата сообщения: 24.05.2005 15:59
krast

Цитата:
кучу примеров, где на варнинги совершенно плевать

только не в этом случае.
Цитата:
лонгстринги

это о строках ? (давайте писать нормальные названия. на форуме по операционным системам за такое можно получить от модератора) если да, то скажу что строки не обнуляются, так как они не число. им обычно присаивается ''. Иногда мы присаиваем их строку - это тоже инициализация.

Цитата:
всегда интерфейсы нуллишь после использования

до интерфейсов мои ручки не доходили, но удаление формы, которую я ещё собираюсь использовать (всмысле переменную, которой я снова буду использовать как указательна форму) выглядит так Formname.free;Formname:=nil; ПОка не напишеш какого нибудь большого проекта (который будет работать 24/7/365) не поймёш, что надежда на компилятор или утечка одного байта может серёзно всплыть потом.
Автор: krast
Дата сообщения: 24.05.2005 16:15
OdesitVadim

Цитата:
только не в этом случае.

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


Цитата:
давайте писать нормальные названия. на форуме по операционным системам за такое можно получить от модератора

мы не там, мы здесь. еще - лонгстринг - это нормальное название, ибо я имею в виду как раз длинные строчки, просто строчки - это не всегда одно и тоже что лонгстринг (не забудь еще о {$H})

(зы. в форуме _on-line игры_ вообще модера нет, ну дак что - всем туда равнятся...)


Цитата:
то скажу что строки не обнуляются, так как они не число. им обычно присваивается ''.

понятие _обнулить_, оно гораздо шире, чем просто присвоение нуля


Цитата:
до интерфейсов мои ручки не доходили, но удаление формы

вишь ли, понятие интерфейса и объекта - это суть разные вещи, а есть еще понятие управляемого времени жизни переменной, или, например, сборка мусора, к объектам в delphi они неприменимы.


Цитата:
Formname.free;Formname:=nil;

есть отличная функция FreeAndNil


Цитата:
ПОка не напишеш какого нибудь большого проекта ...

в этом контексте правильнее будет писать _пока не поучавствуешь в каком-нибудь..._

Цитата:
(который будет работать 24/7/365) не поймёш, что надежда на компилятор или утечка одного байта может серёзно всплыть потом.

проблема в том, я уже лет как пять только то и делаю что учавствую в больших проектах

Автор: OdesitVadim
Дата сообщения: 24.05.2005 16:33
krast

Цитата:
если ты так следишь шобы не было геморроя в коде, то повторяю еще раз - глобальных переменных у тебя быть не должно.

А это причём здесь? Я что говорил об этом?

Цитата:
лонгстринг

это не нормальное. Понапридумываете сленга, а потом разобраться сложно.

Цитата:
не забудь еще о {$H}

плиз, не учи, я не просил.

Цитата:
вишь ли, понятие интерфейса и объекта - это суть разные вещи, а есть еще понятие управляемого времени жизни переменной, или, например, сборка мусора, к объектам в delphi они неприменимы.

Ну и причём здесь это? Мы говорим о более глобальной вещи - инициализации.
Цитата:
есть отличная функция FreeAndNil

Свои ответы я пишу с расчёта на средный уровень, чтобы потом другие могли учиться и задавали меньше вопросов. А об этой функции я знаю.

Цитата:
проблема в том, я уже лет как пять только то и делаю что учавствую в больших проектах

Видимо только участвуеш. Писать - это другое дело
Автор: krast
Дата сообщения: 24.05.2005 16:45
OdesitVadim
поваторяю с самого начала ты ответил:

Цитата:
а кто чуть выше обнулит a. Надеяться на компилятор не стоит

и это фигня, ибо компилятор обнуляет глобы.


Цитата:
это не нормальное. Понапридумываете сленга, а потом разобраться сложно.

интересно, ты для слов upgrade, underflow итд тож используешь русскоязычные подобия?


Цитата:
плиз, не учи, я не просил.

а оно мне надо, у меня три университетских группы в неделю, которых я учу Delphi, и за это мне денюжку платят...
а имел я виду токо то что строка и длинная строка - это разные вещи и это был ответ на твое:

Цитата:
лонгстринги

это о строках ?

нет, это разное, и зависит как раз от {$H} (я имею в виду токо Ansi и Short строки, игнорируя PChar)


Цитата:
Ну и причём здесь это? Мы говорим о более глобальной вещи - инициализации.

ну, как первое - ты сам заговорил о free. второе - управляемое время жизни затрагивает и инициализацию самым непоредственным образом...


Цитата:
Свои ответы я пишу с расчёта на средный уровень, чтобы потом другие могли учиться и задавали меньше вопросов

чето вспомнилось - напищи прогу чтобы и идиот понял - токо идиот и будет пользоваться. и к чему это я, хммм. не знаю

короче, забей, человек которые переходит на личности - для меня не существует.
Автор: OdesitVadim
Дата сообщения: 24.05.2005 17:46
krast

Цитата:
upgrade, underflow

в такой форме - гараздо лучше. Именно так - лучше.

Цитата:
а оно мне надо, у меня три университетских группы в неделю, которых я учу Delphi, и за это мне денюжку платят...

Сам три года на кафедре работал. Учил. и не три группы, а много много больше

Цитата:
и это фигня, ибо компилятор обнуляет глобы.

это характерно для конкретного набора компиляторов. Не исключено что в будущем (или в случае хитрооптимизирующего компилятора) это тоже так будет.
Цитата:
Свои ответы я пишу с расчёта на средный уровень, чтобы потом другие могли учиться и задавали меньше вопросов

Но дальше уровень меняется, в зависимости от уровня спрашивающего.

Цитата:
чето вспомнилось - напищи прогу чтобы и идиот понял

А вот это действительно сложно.

Цитата:
короче, забей, человек которые переходит на личности - для меня не существует.

поэтому флеймить я больше не буду. так как это уже флейм. Если не согласен ПМ в помощь.
Автор: Solnake
Дата сообщения: 24.05.2005 23:24
Подскажите как можна узнать на каком елементе в ListBox я кликнул?
Задача такова : нужно сгенерировать запрос, в котором должно фигурировать название именно того елемента на котором я кликаю.


Добавлено:
Все, уже не нада, сам нашол.
Автор: KDA
Дата сообщения: 25.05.2005 00:10
krast
Компилятор сам глобы не обнуляет, в лучшем случае, генерит код для этого действа.
И потом, не надо путать заполнение нулями памяти с обнулением переменных. А происходит именно первое
Автор: krast
Дата сообщения: 25.05.2005 07:06
KDA

Цитата:
Компилятор сам глобы не обнуляет, в лучшем случае, генерит код для этого действа.

читай внимательнее что я пишу:

Цитата:
компилятор генерит код для обнуления глобов



Цитата:
И потом, не надо путать заполнение нулями памяти с обнулением переменных. А происходит именно первое

блин, еще один...
Автор: ViktorSila
Дата сообщения: 25.05.2005 09:38
Создал потомок от некого компонента. В другом модуле пару обработчиков его событий. В программе подключил все модули. Но потомок не видит оброботчиков. Мне говорили, что надо создавать экземпляр. Как сделать, чтобы потомок увидел оброботчики?
Автор: krast
Дата сообщения: 25.05.2005 09:42
ViktorSila
давай код где не работает то что сделал, посмотрим
Автор: ViktorSila
Дата сообщения: 25.05.2005 10:10
krast
Как вообще создать экземпляр?

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Вероятность одинакового CRC32


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.