DBGrid
От: Dsm00k  
Дата: 16.04.06 11:41
Оценка:
Вопрос вот такой,как сделать чтобы выделеенные записи DBGrid'копировывались из одной таблицы(BDE) в другую(BDE).
Второй вопрос при умножении 2-х флотов постоянно возникает ошибка то edit пустой то пользователь вместо запятой поставил точку,как это обойти.
Re: DBGrid
От: ekamaloff Великобритания  
Дата: 17.04.06 04:15
Оценка:
Здравствуйте, Dsm00k, Вы писали:

D>Вопрос вот такой,как сделать чтобы выделеенные записи DBGrid'копировывались из одной таблицы(BDE) в другую(BDE).


В хелпе есть практически готовый пример.

Предположим что грид привязан к Table1, а скопировать надо в Table2, причем поля у этих двух таблиц ессно должны быть одинаковыми, тогда это будет выглядеть примерно так:

procedure TForm1.Button1Click(Sender: TObject);
var
  i, j: Integer;
  s: string;
begin
  if DBGrid1.SelectedRows.Count>0 then
    with DBGrid1.DataSource.DataSet do
      for i:=0 to DBGrid1.SelectedRows.Count-1 do
      begin
        GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
        Table2.Append;
        for j := 0 to FieldCount-1 do
          Table2.Fields[j].Value := Fields[j].Value;
        Table2.Post;
      end;
end;


Другой вариант — в таком же цикле составить строку sql-запроса (INSERT INTO ...), и потом ее выполнить. Table2, если требуется, ессно открыть заново.

D>Второй вопрос при умножении 2-х флотов постоянно возникает ошибка то edit пустой то пользователь вместо запятой поставил точку,как это обойти.


Не понял вопроса. Во-первых не надо давать юзеру вводить в едит что угодно. Для этого можно, например, использовать маску ввода или делать дополнительные проверки в OnKeyPress компонента. Во-вторых при конвертации флоата в строку и наоборот следует избавиться от зависимости от региональных настроек (т.е. всегда использовать или точку или запятую), как это сделать — в поиск по сайту (по StringReplace, DecimalSeparator). Ну и в третьих вообще-то есть try-except on EConvertError do ; end;
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re: DBGrid
От: Dsm00k  
Дата: 17.04.06 04:15
Оценка:
Здравствуйте, Dsm00k, Вы писали:

D>Вопрос вот такой,как сделать чтобы выделеенные записи DBGrid'копировывались из одной таблицы(BDE) в другую(BDE).

D>Второй вопрос при умножении 2-х флотов постоянно возникает ошибка то edit пустой то пользователь вместо запятой поставил точку,как это обойти.



Отвечаю сам себе
1)Сво-во Мульти селект.
2)Проверять ручками написанное и никак иначе.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.