Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

StringGrid [D7, XP]


Страницы:   1 2 3

alexsashkan ©   (2008-02-07 12:17:00) 

ЗДРАВСТВУЙТЕ!!! У меня есть вопросик,я делаю перемещение по СтрингГриду,тоесть кнопочку "Фёрст","Ласт".Вот в ДБГриде есть такая штучка,что можна перемещаться по записям..то на последнююю..то на первую..то добавить  строку..и т.д.А вы не подскажите есть ли в Стрингриде такое ? и как до него добраться ??? Заранее благодарен!!!


Anatoly Podgoretsky   (2008-02-07 14:59:00) [1]


> потому как мне вчера обьяснили что этого сделать нельзя(на
> этом сайте),

Объяснили тебе правильно, а вот вывод из этого ты сделал неправильный, вместо работы с датасет, полез в stringgrid, с которым не умеешь работать, а чтобы сделать хоть частично похожим, там придется писать большую обертку.


Сергей М.   (2008-02-07 14:58:00) [2]


> alexsashkan   (07.02.08 14:43) [52]


Так ведь тебе на это куча намеков была)
А ты уперся рогом в свой StringGrid)

Тебе ж, голодному, удочку предлагали, а не рыбу)


alexsashkan   (2008-02-07 14:43:00) [3]


> ltBatchOptimistic;
> ЙА ФПИРЕД! :)

БОЛЬШОЕ СПАСИБо РЕБЯТА!!!А в особенносьти Slym ©шо не забил на меня рукой как многие здеся пытались....и подмог мне советом ;-)


ketmar   (2008-02-07 14:36:00) [4]

>[50] Сергей М. © (2008-02-07 14:33:00)
я, в принципе, всё понял. логика похожа. а интерес всё равно чисто спортивный уже. %-)

---
Understanding is not required. Only obedience.


Сергей М.   (2008-02-07 14:33:00) [5]


> ketmar ©   (07.02.08 14:27) [47]


> не работал я с ADO практически


Ну с TClientDataset-то наверняка работал ?
Там задействован тот же механизм, только зовется он там чуть по-другому и выглядит с т.з. на методы/св-ва/события чуть иначе. А суть та же.


Slym   (2008-02-07 14:31:00) [6]

Сергей М. ©   (07.02.08 14:25) [46]
ltBatchOptimistic;

ЙА ФПИРЕД! :)


Сергей М.   (2008-02-07 14:31:00) [7]


> ketmar ©   (07.02.08 14:27) [47]


Это режим пакетных изменений.

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

Ну да, считай это нечто отдаленно сходным с транзакцией.


ketmar   (2008-02-07 14:27:00) [8]

>[46] Сергей М. © (2008-02-07 14:25:00)
batch — это такие «типа транзакции», я так понял? (ну не работал я с ADO практически %-( )

---
Understanding is not required. Only obedience.


Сергей М.   (2008-02-07 14:25:00) [9]


> alexsashkan   (07.02.08 14:01) [35]


Все что нужно сделать - это включить а ADOQuery режим пакетного обновления (см. справку по теме "Opening the dataset in batch update mode").

После выполнения выборки из "SQL базы" ты просто дополняешь полученный НД записями из Excel-таблицы (ADOQuery.Insert/Post), каждая добавленная запись немедленно отображается в DBGrid.

Все ! И никаких треугольных колес изобретать не нужно)


ketmar   (2008-02-07 14:19:00) [10]

>[43] alexsashkan (2008-02-07 14:18:00)
ну забери ты их из таблицы, фигакни в базу. сделай им время протухания/сессию (на случай, если твоя софтина упадёт; а она не может не упасть). и работай с базой. коли не хочешь нормально — делай так.

---
Understanding is not required. Only obedience.


Slym   (2008-02-07 14:19:00) [11]

alexsashkan   (07.02.08 14:13) [40]
временно!!!

Тагды можно попробывать такую схемку:
ADOQuery1.SQL.Text := 'select p.*, cast((p.cena * :distance) as float) As PlataZaProezd from perevozchik p';
ADOQuery1.LockType:=ltBatchOptimistic;
ADOQuery1.Active:=true;
а потом используя Slym ©   (07.02.08 13:34) [31]

добиваешь данные из экселя...
в базу они не попадут если не делать ADOQuery1.UpdateBatch


alexsashkan   (2008-02-07 14:18:00) [12]

Slym ©   (07.02.08 14:14) [41]
в том то и дело,что я так вначале и хотел - забить в базу данных и не мучаться..,но именно нужно,чтобы через Ексель были данные эти... :-(


ketmar   (2008-02-07 14:17:00) [13]

>[36] Игорь Шевченко © (2008-02-07 14:05:00)
дададад. я знаю термин «bit decay», сам использую иногда в пояснениях. %-)

---
Understanding is not required. Only obedience.


Slym   (2008-02-07 14:14:00) [14]

alexsashkan   (07.02.08 14:01) [35]
И вариант... Добавить данные Экселя единоразово в базу и забыть про него не катит?


alexsashkan   (2008-02-07 14:13:00) [15]


> Добавить навсегда? или временно - пока работает программа?

временно!!!чтобы можна было увидить данные из SQL запроса и из Екселя в ДБГриде вместе..


Slym   (2008-02-07 14:09:00) [16]

alexsashkan   (07.02.08 14:01) [35]
добавить в АДоКвери данные ез Екселя

Добавить навсегда? или временно - пока работает программа?
это убрать: GlobDistanse:=DBGrid1.Fields[0].AsFloat;и заменить на: GlobDistanse:=ADOQuery1.Fields[0].asFloatж


alexsashkan   (2008-02-07 14:08:00) [17]


> Автоматизация гужевого транспорта ?

Это определение оптимального грузоперевозчика.


Игорь Шевченко   (2008-02-07 14:06:00) [18]

alexsashkan   (07.02.08 14:01) [35]

Автоматизация гужевого транспорта ?


Игорь Шевченко   (2008-02-07 14:05:00) [19]

ketmar ©   (07.02.08 13:24) [28]


> жалко ж memory


Портится ? Загнивание битов происходит ?

"bit rot. Also bit decay. Hypothetical disease the existence of which has been deduced from the observation that unused programs or features will often stop working after sufficient time has passed, even if `nothing has changed'. The theory explains that bits decay as if they were radioactive. As time passes, the contents of a file or the code in a program will become increasingly garbled.
There actually are physical processes that produce such effects (alpha particles generated by trace radionuclides in ceramic chip packages, for example, can change the contents of a computer memory unpredictably, and various kinds of subtle media failures can corrupt files in mass storage), but they are quite rare (and computers are built with error-detecting circuitry to compensate for them). The notion long favored among hackers that cosmic rays are among the causes of such events turns out to be a myth; see the cosmic rays entry for details. "

http://www.jargon.net/jargonfile/b/bitrot.html


alexsashkan   (2008-02-07 14:01:00) [20]


> with ДБГрид.DataSource do
> begin
>  Dataset.Append;
>  try
>    Dataset.FieldByName('поле1').Value:='значение';
>    Dataset.FieldByName('поле2').Value:='значение';
>    Dataset.Post;
>  except
>    Dataset.Cancel;
>    Raise;
>  end;
> end;

делаю выборку
//------------------------
     ADOQuery1.SQL.Text := 'select distance FROM distanse where city1 = :CITY1 and city2 = :CITY2';
     ADOQuery1.Parameters.ParamByName('CITY1').Value := COmboBox1.Text;   //определяем значения для фильтра1
     ADOQuery1.Parameters.ParamByName('CITY2').Value := COmboBox2.Text;   //определяем значения для фильтра2
     ADOQuery1.Active:=true;  // активируем запуск запроса на выполнение

     GlobDistanse:=DBGrid1.Fields[0].AsFloat;     //тута получаем дистанцию
     Label4.Caption:='Содержимое справочника Растояния между городами  ('+FloatToStr(GlobDistanse)+'км)';

//-------------------------------------------------------------------------------
     ADOQuery1.Close;     //отрубаем соединения,на всякий случай
     ADOQuery1.SQL.Clear;  //очищаем SQL запрос

    ADOQuery1.SQL.Text := 'select p.*, cast((p.cena * :distance) as float) As PlataZaProezd from perevozchik p';//получаю данные с вычесляемым полем
//-------------------
и в итоге я получаю данные,но после этого делаю выборку из Екселя,и вот мне необходимо до отображения этих даных с запроса,добавить в АДоКвери данные ез Екселя.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо