Как вывести содержимое таблицы

Добрый день.давно учил делфу,все забыл начисто,последних лет 6 все пхп да яваскрипт.стала задача написать приложение,которое будет работать с базой данных на удаленном сервере.база-мускл.нашел компонент для делфы под это дело Direct MySQL Objectsконнектится,получает данные на ура.стал вопрос за выводом данных в табличном виде.и тут засада.нашел что для этого по-идее подходит компонент dbgrid,но что-то не пойму как мне из моих полученных данных,вида MySQLResult.****************('*****') перетянуть данные в дбгрид?полазив по инету нашел что еще надо ставить компонент datasource,и его указать в dbgrid,а в самом datasource указать тот компонент,который получает у нас данные из базы.но у него список компонентов пуст,а при попытке насильно скормить ему MySQLClient ругается матом.прошу помощи,объясните пожалуйста,как мне вывести эти данные?это срочно,первую версию должен был показать вчера(((((
8 ответов

Если этот MySQLClient не унаследован от TDataSource ничего не выйдет и придется использовать обычный TStringGridНо можно же использовать TSQLQuery + TSQLConnection c Driver = MySQL


Если этот MySQLClient не унаследован от TDataSource ничего не выйдет и придется использовать обычный TStringGrid
а подвязать никак не выйдет,да?


MySQLClient унаследован от TObject.Проще всего пожалуй выводить таки результаты в StringGrid. Создаешь число колонок по числу полей и выводишь данные построчно как-то так
StringGrid.ColCount := MySQLResult.FieldCount;MySQLResult.First;while not MySQLResult.EOF dobegin  for i := 0 to MySQLResult.FieldCount - 1 do    StringGrid.Cells[i, MySQLResult.RecNo].FieldValue(i);  MySQLResult.Next;end;
Можно еще в первой строке вывести заголовки полей, тогда весь вывод сместится на 1 строку вниз.Пишу по памяти, поэтому где-то могут быть ошибки в названиях свойств, и еще не помню что означает RecNo, по моему номер текущей записи.


можно взять компоненты другие ADO или Zeos... и использовать DB контролы (TDBGrid, TDBEdit, ...)


Dom, ,не могу,к сожалению,поднять репутацию,поэтому просто говорю СПАСИБО!!!!!!!!!!!код подправил,конечно:
StringGrid1.ColCount := MySQLResult.Fieldscount;MySQLResult.First;while not MySQLResult.EOF dobegin  for i := 0 to MySQLResult.FieldsCount - 1 do    StringGrid1.Cells[i, MySQLResult.RecNo]:=MySQLResult.FieldValue(i);  MySQLResult.Next;end;
теперь такой вопрос,можно-ли возле каждой записи поставить какую-то кнопку?просто надо чтоб возле каждой записи был какой-то баттон,чтоб нажать,и по нему открылась новая форма,с возможностью манипулирования записью.вобщем все это понятно как делать,интересует сама возможность подпихнуть баттоны в StringGrid.он такое позволяет?


Да, реально мой код забавный. Хотя бы прочел перед отправкой. Но хорошо, если он смог натолкнуть на нужные мысли.Спасибо вполне достаточно.Вопрос про кнопки лучше отдельным топиком. Один топик - один вопрос.По StringGrid'у не знаю, кажется можно, но не просто. Думаю поиск даже по этому форуму может помочь. Точно такое можно делать в VirtualStringTree. Но если прога нужна на вчера, то времени на освоение компонента может и не быть.


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


Лучше бы нормальные компоненты и грид заюзал. Чем эти костыли.Так с БД не работают.