Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi 2

Модерирует : ShIvADeSt

ShIvADeSt (22-03-2007 02:18): http://forum.ru-board.com/topic.cgi?forum=33&topic=8142  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение темы http://forum.ru-board.com/topic.cgi?forum=33&topic=3647&start=2020#lt
Внимание, все большие куски кода (более 5 строк) оформляем в тег [more] дабы уменьшить размер поста.

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:52 20-04-2006 | Исправлено: ShIvADeSt, 02:02 30-06-2006
ranc



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kostya
ADOQuery.SQL.Text:='select NAME from data where № like "%'Edit1.Text+'%"'
ADOQuery.Open
...

Всего записей: 534 | Зарегистр. 06-02-2003 | Отправлено: 05:33 01-06-2006
Kostya

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А плюсик ненужно перез Edit1 ?

Всего записей: 194 | Зарегистр. 18-03-2003 | Отправлено: 13:10 01-06-2006
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Kostya
надо, надо.
Да, заметим, что ещё нужно предусмотреть вариант, когда в строке, записаной в едите есть двойная кавычка. Её нужно экранировать, иначе будут проблемы (просто весь запрос поплывёт). Я в своё время просто подменял её на "

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 13:32 01-06-2006
Butcher



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

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

А не проще ли написать так:
 
ADOQuery.SQL.Text:='select NAME from data where № like :N';
ADOQuery.Parameters.ParamByName('N').Value:= '%'+Edit1.Text+'%';
ADOQuery.Open;

Всего записей: 41 | Зарегистр. 12-02-2003 | Отправлено: 15:11 01-06-2006
Kostya

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Щас попробую сделать.
 
А подскажите еще как сделать: я добавил на форму комбобокс и надо чтобы при запуске программы в нем был список пилей таблицы. Ну чтобы выбирать по кокому поиск осуществлять. Я что-то сидел думал думал, но видимо моих познааний дельфы нехватило чтобы надумать правельный ответ

Всего записей: 194 | Зарегистр. 18-03-2003 | Отправлено: 15:45 01-06-2006
Butcher



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

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

 
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;

Всего записей: 41 | Зарегистр. 12-02-2003 | Отправлено: 16:15 01-06-2006
Kostya

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо!!!
 
А если нетрудно подскажите как присвоить к Edit1 форме результат выполнения какого либо запроса а то в книжке ненайти что-то. Везде примеры с DBGrid. А хочется чтобы например после SELECT count(*) AS [Всего] FROM [tb1] этот результат выводился в какоенибуть обычно поле
 
Добавлено:
А как сделать чтобы комбобокс нельзя было редактировать. Чтобы список был и все.

Всего записей: 194 | Зарегистр. 18-03-2003 | Отправлено: 16:38 01-06-2006 | Исправлено: Kostya, 16:57 01-06-2006
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
свойство Style = csDropDownList

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 17:07 01-06-2006
Kostya

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А на счет Edit1 подскажешь?

Всего записей: 194 | Зарегистр. 18-03-2003 | Отправлено: 17:12 01-06-2006
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Kostya
Да просто всё

Код:
 
var rs:_RecordSet;
begin
ADOCommand.commandText:='SELECT count(*) AS [Всего] FROM [tb1]'; //но запрос коректируеш
rs:=ADOCommand.execute;
Edit1.text:=rs.field[0].value;
rs.close;
 


----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 17:40 01-06-2006
Kostya

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А подскажите еще как сделать проверку на то что ввели. Например нужно чтобы в поле были только числа. Как сделать? если поставить в базе формат числовой то при вводе в проге вылетает ошибка недепая. А как сделать чтобы было понятно что воодить нужно числа.
 
В php можно было делать проверку так preg_match("/^[0-9]+$/",$_GET['id'])
 
А в дельфе как сделать? или в ней подругому делается?

Всего записей: 194 | Зарегистр. 18-03-2003 | Отправлено: 19:18 01-06-2006
Butcher



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

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

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

Всего записей: 41 | Зарегистр. 12-02-2003 | Отправлено: 20:42 01-06-2006
Kostya

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо!
 
Добавлено:
А подскажите еще как допустим сделать чтобы можно было дату добовлять и зDateTimePicker. А то неполучается мне ее перекинуть в базу

Всего записей: 194 | Зарегистр. 18-03-2003 | Отправлено: 21:01 01-06-2006
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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;
 

ничего сложного...

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 21:27 01-06-2006
Butcher



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

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

Юзать TDBDateTimePickerEh из EhLib
или так:
ADOQuery1.Add('INSERT INTO Tbl(...,DateField) VALUES(...,:DateField)');
ADOQuery1.Parameters.ParamByName('DateField').Value:= DateTimePicker1.DateTime;
ADOQuery1.ExecSQL;

Всего записей: 41 | Зарегистр. 12-02-2003 | Отправлено: 22:11 01-06-2006
Kostya

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите я правельно делаю?
 
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;

Всего записей: 194 | Зарегистр. 18-03-2003 | Отправлено: 22:58 01-06-2006
ALEXPLUS1985

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kostya
Какого типа у тебя поле "Дата"?
Могут ли другие поля (которые не указаны в запросе) принимать значения NULL?

Всего записей: 10 | Зарегистр. 21-11-2005 | Отправлено: 23:41 01-06-2006
Kostya

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
тектовый тип
другий да могут принимать.

Всего записей: 194 | Зарегистр. 18-03-2003 | Отправлено: 23:42 01-06-2006
EZH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Kostya

Цитата:
И еще почему мне вылетаешь ошибка "примерно: does nor return a result set" когда я пишу так:
 
Form1.ADOQuery1.SQL.Text := 'INSERT INTO tb1(Дата) VALUES("qweqwe")';
Form1.ADOQuery1.Open;  

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

Всего записей: 1738 | Зарегистр. 02-09-2004 | Отправлено: 00:09 02-06-2006 | Исправлено: EZH, 00:15 02-06-2006
Kostya

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо. А правельно я запрос сделал? все так?

Всего записей: 194 | Зарегистр. 18-03-2003 | Отправлено: 00:11 02-06-2006
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi 2
ShIvADeSt (22-03-2007 02:18): http://forum.ru-board.com/topic.cgi?forum=33&topic=8142


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru