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

» Вопросы по Delphi 2

Автор: ranc
Дата сообщения: 01.06.2006 04:33
Kostya
ADOQuery.SQL.Text:='select NAME from data where № like "%'Edit1.Text+'%"'
ADOQuery.Open
...
Автор: Kostya
Дата сообщения: 01.06.2006 12:10
А плюсик ненужно перез Edit1 ?
Автор: OdesitVadim
Дата сообщения: 01.06.2006 12:32
Kostya
надо, надо.
Да, заметим, что ещё нужно предусмотреть вариант, когда в строке, записаной в едите есть двойная кавычка. Её нужно экранировать, иначе будут проблемы (просто весь запрос поплывёт). Я в своё время просто подменял её на "
Автор: Butcher
Дата сообщения: 01.06.2006 14:11

Цитата:
Да, заметим, что ещё нужно предусмотреть вариант, когда в строке, записаной в едите есть двойная кавычка. Её нужно экранировать, иначе будут проблемы (просто весь запрос поплывёт). Я в своё время просто подменял её на "

А не проще ли написать так:

ADOQuery.SQL.Text:='select NAME from data where № like :N';
ADOQuery.Parameters.ParamByName('N').Value:= '%'+Edit1.Text+'%';
ADOQuery.Open;
Автор: Kostya
Дата сообщения: 01.06.2006 14:45
Щас попробую сделать.

А подскажите еще как сделать: я добавил на форму комбобокс и надо чтобы при запуске программы в нем был список пилей таблицы. Ну чтобы выбирать по кокому поиск осуществлять. Я что-то сидел думал думал, но видимо моих познааний дельфы нехватило чтобы надумать правельный ответ
Автор: Butcher
Дата сообщения: 01.06.2006 15:15

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


procedure TForm1.OnShow();
var i: integer;
begin
...
ADOTable1.Open;
for i:= 0 to ADOTable1.Fields.FieldCount-1 do
ComboBox1.Items.Add(ADOTable1.Fields[i].FieldName;
end;
Автор: Kostya
Дата сообщения: 01.06.2006 15:38
Спасибо!!!

А если нетрудно подскажите как присвоить к Edit1 форме результат выполнения какого либо запроса а то в книжке ненайти что-то. Везде примеры с DBGrid. А хочется чтобы например после SELECT count(*) AS [Всего] FROM [tb1] этот результат выводился в какоенибуть обычно поле

Добавлено:
А как сделать чтобы комбобокс нельзя было редактировать. Чтобы список был и все.
Автор: OdesitVadim
Дата сообщения: 01.06.2006 16:07
свойство Style = csDropDownList
Автор: Kostya
Дата сообщения: 01.06.2006 16:12
А на счет Edit1 подскажешь?
Автор: OdesitVadim
Дата сообщения: 01.06.2006 16:40
Kostya
Да просто всё

Код:
var rs:_RecordSet;
begin
ADOCommand.commandText:='SELECT count(*) AS [Всего] FROM [tb1]'; //но запрос коректируеш
rs:=ADOCommand.execute;
Edit1.text:=rs.field[0].value;
rs.close;
Автор: Kostya
Дата сообщения: 01.06.2006 18:18
А подскажите еще как сделать проверку на то что ввели. Например нужно чтобы в поле были только числа. Как сделать? если поставить в базе формат числовой то при вводе в проге вылетает ошибка недепая. А как сделать чтобы было понятно что воодить нужно числа.

В php можно было делать проверку так preg_match("/^[0-9]+$/",$_GET['id'])

А в дельфе как сделать? или в ней подругому делается?
Автор: Butcher
Дата сообщения: 01.06.2006 19:42

Цитата:
А подскажите еще как сделать проверку на то что ввели. Например нужно чтобы в поле были только числа.

Если к полю прицепишь DBEdit, то он сам будет не разрешать вводить неверные данные, и без ошибок. А если вводишь в Edit, то проверять можно так:
var N: integer;
try
N:= StrToInt(Edit1.Text);
except
ShowMessage('В поле "Бла-бла" нельзя вводить буквы и знаки');
end;
Автор: Kostya
Дата сообщения: 01.06.2006 20:01
Спасибо!

Добавлено:
А подскажите еще как допустим сделать чтобы можно было дату добовлять и зDateTimePicker. А то неполучается мне ее перекинуть в базу
Автор: DroN_S
Дата сообщения: 01.06.2006 20:27
Kostya
для ввода только цыфер и разделителя, делается так

Код:
procedure TEdit.KeyPress(var Key: Char);
begin
case key of
'0'..'9': ; // цифры
#8: ; // забой
'.', ',':
if Pos(DecimalSeparator, Text) = 0 then
Key := DecimalSeparator
else
Key := #0; // десятичный разделитель
else
key := #0;
end; // case
end;
Автор: Butcher
Дата сообщения: 01.06.2006 21:11

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

Юзать TDBDateTimePickerEh из EhLib
или так:
ADOQuery1.Add('INSERT INTO Tbl(...,DateField) VALUES(...,:DateField)');
ADOQuery1.Parameters.ParamByName('DateField').Value:= DateTimePicker1.DateTime;
ADOQuery1.ExecSQL;
Автор: Kostya
Дата сообщения: 01.06.2006 21:58
Подскажите я правельно делаю?

Form1.ADOCommand1.CommandText := 'INSERT INTO tb1(дата) VALUES("qwqeqweqweqwe")';
Form1.ADOCommand1.Execute;

И еще почему мне вылетаешь ошибка "примерно: does nor return a result set" когда я пишу так:

Form1.ADOQuery1.SQL.Text := 'INSERT INTO tb1(Дата) VALUES("qweqwe")';
Form1.ADOQuery1.Open;
Автор: ALEXPLUS1985
Дата сообщения: 01.06.2006 22:41
Kostya
Какого типа у тебя поле "Дата"?
Могут ли другие поля (которые не указаны в запросе) принимать значения NULL?
Автор: Kostya
Дата сообщения: 01.06.2006 22:42
тектовый тип
другий да могут принимать.
Автор: EZH
Дата сообщения: 01.06.2006 23:09
Kostya

Цитата:
И еще почему мне вылетаешь ошибка "примерно: does nor return a result set" когда я пишу так:

Form1.ADOQuery1.SQL.Text := 'INSERT INTO tb1(Дата) VALUES("qweqwe")';
Form1.ADOQuery1.Open;

Метод Open применяется только для запросов, возвращающих выбоки - грубо говоря для select'ов. Для insert/update надо применять метод ExecSQL.

Тебе собственно это и написано в ошибке.
Автор: Kostya
Дата сообщения: 01.06.2006 23:11
Спасибо. А правельно я запрос сделал? все так?
Автор: EZH
Дата сообщения: 01.06.2006 23:19
Kostya
Да вроде все так, что смущает то?
Автор: Kostya
Дата сообщения: 01.06.2006 23:36
Да я пока незнаю ничего что могло бы меня смущать. Просто решил спросить у тех кто знает
Автор: SergeBS
Дата сообщения: 02.06.2006 07:57
Kostya
Слушай, а самому хоть что-то сообразить не судьба?
Или хоть доки почитать?

2ALL
Народ, а не хватит ли отвечать на вопросы "сколько будет 2х2". Задрало. Один деятель не желает ничего читать из док, а остальные его поощряют. Кнопку F1 никто не отменял.
Автор: Butcher
Дата сообщения: 02.06.2006 08:21
SergeBS
Ну видишь, человек - пхп-шник, осваивается только.
Автор: SergeBS
Дата сообщения: 02.06.2006 09:18
Butcher

Цитата:
Ну видишь, человек - пхп-шник, осваивается только.

А этого что, достаточно чтобы доки не читать? По-моему так наоборот: вначале читаем доки, а уж если там ответа нет - спрашиваем. Осваивать надо с чтения док, а не вопросов, ответы на которые ТОЧНО есть в описаниях компонент, которые применяются.
Автор: Butcher
Дата сообщения: 02.06.2006 09:24

Цитата:
Осваивать надо с чтения док, а не вопросов, ответы на которые ТОЧНО есть в описаниях компонент, которые применяются.

согласен, поддерживаю.
Автор: Kostya
Дата сообщения: 02.06.2006 10:24
У меня книжка тут есть "Библия Дельфы" ее читаю

Добавлено:

Цитата:
Kostya
Слушай, а самому хоть что-то сообразить не судьба?
Или хоть доки почитать?

2ALL
Народ, а не хватит ли отвечать на вопросы "сколько будет 2х2". Задрало. Один деятель не желает ничего читать из док, а остальные его поощряют. Кнопку F1 никто не отменял.

У меня книжка тут есть "Библия Дельфы" ее читаю! и Ф1 тоже смотрю, но это для тебя это 2х2 потому что ты это знаешь. А я можно сказать первый раз дельфу открыл.
Автор: SergeBS
Дата сообщения: 02.06.2006 11:50
Kostya

Цитата:
У меня книжка тут есть "Библия Дельфы"

Нашел что читать... Лучше найди Архангельского (у него ошибок меньше и излагает как надо, без пальцовки) , или Пачеко+Тейксера - эти вообще классики жанра.


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

Ну так и читай по F1, что применять пытаешься. Пользы больше будет, и быстрее, чем вопросы задавать.
А еще сходи на http://delphiworld.narod.ru - там мощнейший набор статей по Делфи на все случаи жизни.
Автор: Kostya
Дата сообщения: 02.06.2006 12:38
Я же незнаю какие книги лучше. В ирке спросил книжу по дельфе мне сказали такую.

А на счет сайта то уже сходил туда.
Автор: ALEXPLUS1985
Дата сообщения: 02.06.2006 19:10

Цитата:
Нашел что читать...

Согласен. Помоему у Фленова все книги - муть.
От себя добавлю, Kostya зайди на drkb.ru и скачай DRKB 2.3, тоже оличная подборка статей по Delphi

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Событие STFilter(DBGridEh) ???


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