Перейти к содержанию

Вопросы

Здравствуйте, у меня возник вопрос Как базу данных подключить к TGrid? Я использую Delphi XE3 и База данных Accsess: ADOConnection + ADOQuery + DataSource. И вот как отобразить в TGrid Таблицу бд ?

Поделиться сообщением


Ссылка на сообщение

Рекомендуемые сообщения

  • 0

Так как этот форум FireMonkey, посоветую вам сразу юзать базу SQLite, с ней можно будет и на мобильных устройствах работать и на desktop ну и приложение писать на FMX, а если нужно чисто Delphi (VCL), то лучше загляните на другой форум, быстрее найдете ответ, и обратите внимание на сторонний компонент DBgridEh

Отредактировал Dev

Поделиться сообщением


Ссылка на сообщение
  • 0
2 часа назад, Dev сказал:

Так как этот форум FireMonkey, посоветую вам сразу юзать базу SQLite, с ней можно будет и на мобильных устройствах работать и на desktop ну и приложение писать на FMX, а если нужно чисто Delphi (VCL), то лучше загляните на другой форум, быстрее найдете ответ, и обратите внимание на сторонний компонент DBgridEh

Дело в том что я начинал писать на VCL. Но потом когда понял что нормальной графики там не сделать переконвертировал (в ручную) на FireMonkey (Delphi XE3) Там подключено 4 базы данных Access. И переходить на SQLite Не хочется. Переписывать много надо будет. Мб можно как-то подключить к TGrid бд ADO ?

Поделиться сообщением


Ссылка на сообщение
  • 0

Не понятно, что мешает подключить согласно приведенного примера?

Отредактировал GASCHE

Поделиться сообщением


Ссылка на сообщение
  • 0
54 минуты назад, GASCHE сказал:

Не понятно, что мешает подключить согласно приведенного примера?

То что в FireMonkey нет компонетна DBGride есть компонет TGride В котором нет DataSource

 

Поделиться сообщением


Ссылка на сообщение
  • 0
5 часов назад, SIARHEI RAHOUSKI сказал:

Но потом когда понял что нормальной графики там не сделать

Вы имеете ввиду дизайн? Можно очень красиво все оформить и на VCL к примеру с компонентами  AlphaControls, они устанавливаются легко и распространяются для жителей СНГ бесплатно, там стили можно так же как и в FMX делать самому и есть в комплекте около ста готовых, на любой вкус. Здесь все зависит от вашей идеи. В FMX свои трудности... и свой набор для работы с базами данных к примеру - FDConnection FDQuery или FDTable и это обычно прикручивают к компоненту ListView, а не к TGrid, через Bind (но лучше кодом) и как оптимальный вариант для этого набора - база SQLite, если не ошибаюсь, эти компоненты не умеют работать с базой Accsess

Отредактировал Dev

Поделиться сообщением


Ссылка на сообщение
  • 0
1 час назад, GASCHE сказал:

Здесь или тут смотрели? 

Попробовал второй способ - помогло. Таблицу отображает, но проект  запускать не хочет пишет ошибку:
Checking project dependencies...
Compiling Project1.dproj (Debug, Win32)
dcc command line for "Project1.dpr"

[dcc32 Fatal Error] F2046 Out of memory
Failed
Elapsed time: 00:00:01.1

Поделиться сообщением


Ссылка на сообщение
  • 0
8 часов назад, GASCHE сказал:

Здесь или тут смотрели? 

Ошибка опять вернулась. Таблица отображается но компелировать не хочет пишет: [dcc32 Fatal Error] F2046 Out of memory

Поделиться сообщением


Ссылка на сообщение
  • 0

Сверху в поиске наберите TGrid там посмотрите может что поможет, и простенький проект можно выложить, тогда может кто и быстрее подскажет. 

Поделиться сообщением


Ссылка на сообщение
  • 0
15 часов назад, GASCHE сказал:

Сверху в поиске наберите TGrid там посмотрите может что поможет, и простенький проект можно выложить, тогда может кто и быстрее подскажет. 

[dcc32 Fatal Error] F2046 Out of memory <---- это вроде ошибка не хватка памяти. Не знаешь как можно её увеличить ?

 

Поделиться сообщением


Ссылка на сообщение
  • 0
3 часа назад, SIARHEI RAHOUSKI сказал:

Не знаешь как можно её увеличить ?

Нет не знаю, но думаю вы такой не один.

Поделиться сообщением


Ссылка на сообщение
  • 0

Используйте сразу Berlin, там есть пример как использовать DB Grid c набором данных.

XE3 + Fire Monkey -> даже не мучайтесь, во-первых мало что получится, во-вторых всё равно надо буде переделывать при переходе на следующие версии.

Поделиться сообщением


Ссылка на сообщение
  • 0
20 часов назад, RoschinSpb сказал:

Используйте сразу Berlin, там есть пример как использовать DB Grid c набором данных.

XE3 + Fire Monkey -> даже не мучайтесь, во-первых мало что получится, во-вторых всё равно надо буде переделывать при переходе на следующие версии.

Я уже понял :) Я просто курсовую дописываю и там чуть-чуть осталось. А так, я только на новых версиях теперь буду.

Поделиться сообщением


Ссылка на сообщение
  • 0

Советую перейти на ListView.

Ну или приобрести стороннюю разработку.

Поделиться сообщением


Ссылка на сообщение

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Похожий контент

    • От Delpher-X
      Доброе время суток. У меня есть код, который отправляет данные, в частности файлы, из одного приложения в другое, используя технологию AppTethering. Вот код, который отправляет данные: 
      var ImageToStream : TMemoryStream; begin ImageToStream := TMemoryStream.Create; ImageToStream.LoadFromFile('Здесь находится путь к файлу'); ImageToStream.Position := 0; TetheringAppProfile1.Resources.FindByName('ImageTransfer').Value := ImageToStream; ImageToStream.Free; end; А вот который принимает: 
      procedure TForm1.TetheringAppProfile1Resources3ResourceReceived( const Sender: TObject; const AResource: TRemoteResource); var GetImage : TMemoryStream; begin GetImage := TMemoryStream.Create; GetImage.Position := 0; GetImage.LoadFromStream(AResource.Value.AsStream); ImageViewer1.Bitmap.LoadFromStream(GetImage); GetImage.Free; end; Пока передача данных идет между двумя Windows-приложениями, все работает прекрасно. Однако, когда я пытаюсь отправить данные от Windows-приложения в Android-приложение, которое исполняется на смартфоне, подключенном к компьютеру через USB-шнур, данные не проходят.  
    • От Delpher-X
      У меня есть код, который должен скачивать файл с сайта: 
      var LoadFile : TMemoryStream; begin LoadFile := TMemoryStream.Create; IdHTTP1.Get('https://sitename.pro/Folder/FileName.txt', LoadFile); LoadFile.SaveToFile('FileName.txt'); LoadFile.Free; end; Проблема однако в том, что вместо скачивания файла программа выдает: Could not load SSL library, хотя я никакой "SSL library" не просил)). При этом, когда я попробовал скачать файл с сайта работающего по старинке, на http (в отличие от https), все скачалось нормально, то есть проблема явно в данном протоколе. Поиск по Интернету ничего не дал.  
    • От Anatoliy_
      Приветствую
      Подскажите, планируется ли в RAD Studio возможность компиляции Delphi программ  для WebAssembly?
       
    • От Delpher-X
      Есть код для копирования файлов:
      procedure TForm1.Timer2Timer(Sender: TObject); var FileIndex, FileName : String; I : Integer; begin randomize; FileIndex := IntToStr(random(5000)); for I := 0 to ListBox1.Items.Count-1 do begin FileIndex := IntToStr(StrToInt(FileIndex) + 1); FileName := FileIndex + Exp; TFile.Copy(ListBox1.Items[I], FileName); end; Timer2.Enabled := False; end; Когда я его запускаю, все работает, однако постоянно выскакивает сообщение об ошибке: specified file already exists, то есть копируемый файл уже существует. То есть, программа пытается каждый файл скопировать дважды. Вопрос: почему? С чем это связано и как от этого избавиться? 
    • От Delpher-X
      Здравствуйте. У меня такая проблема. 
      Пытаюсь скачать файл:
       
      var S : TMemoryStream; begin S := TMemoryStream.Create(); IdHTTP1.Get('http://sitename.com/7UlmBU7IXHA.jpg', S); S.SaveToFile('/storage/emulated/0/ImageFile.jpg'); S.Free; end;
      Проблема возникает на последней стадии - при сохранении файла. Android пишет, Cannot create file: '/storage/emulated/0/ImageFile.jpg'. Permission denied, то есть доступ запрещен. Но как его разрешить? Когда я устанавливаю приложение, система пишет, что никаких разрешений данная программа не требует.
    • От slav_z
      Есть ли проблемы с запуском приложений на macOS Big Sur у Delphi 10.4.1? Очень страшно обновлять macOS...
    • От Delpher-X
      Здравствуйте. Как указываются пути к каталогам и файлам в Android? Скажем, в Windows я указываю такой путь:  C:/Windows/Folder, а как это делается в Android? Особенно меня интересует, как обратиться к корневому каталогу, для создания там новой папки или файла, в Windows это C:/, или D:/ а тут как? 
    • От destroyer86
      Всем привет, с помощью Java2Op сделал обертку библиотеки получил модуль с интерфейсами.
      Теперь сам вопрос в JavaInterfaces.pas есть описание:
       
      JUsbManagerClass = interface(JObjectClass) ['{1048A6E9-E1B5-4DA5-A168-ED91E8DE5284}'] {class} function _GetACTION_USB_ACCESSORY_ATTACHED: JString; cdecl; {class} function _GetACTION_USB_ACCESSORY_DETACHED: JString; cdecl; {class} function _GetACTION_USB_DEVICE_ATTACHED: JString; cdecl; {class} function _GetACTION_USB_DEVICE_DETACHED: JString; cdecl; {class} function _GetEXTRA_ACCESSORY: JString; cdecl; {class} function _GetEXTRA_DEVICE: JString; cdecl; {class} function _GetEXTRA_PERMISSION_GRANTED: JString; cdecl; {class} function getAccessoryList: TJavaObjectArray<JUsbAccessory>; cdecl;//Deprecated {class} function openAccessory(accessory: JUsbAccessory): JParcelFileDescriptor; cdecl;//Deprecated {class} function openDevice(device: JUsbDevice): JUsbDeviceConnection; cdecl;//Deprecated {class} procedure requestPermission(device: JUsbDevice; pi: JPendingIntent); cdecl; overload;//Deprecated {class} property ACTION_USB_ACCESSORY_ATTACHED: JString read _GetACTION_USB_ACCESSORY_ATTACHED; {class} property ACTION_USB_ACCESSORY_DETACHED: JString read _GetACTION_USB_ACCESSORY_DETACHED; {class} property ACTION_USB_DEVICE_ATTACHED: JString read _GetACTION_USB_DEVICE_ATTACHED; {class} property ACTION_USB_DEVICE_DETACHED: JString read _GetACTION_USB_DEVICE_DETACHED; {class} property EXTRA_ACCESSORY: JString read _GetEXTRA_ACCESSORY; {class} property EXTRA_DEVICE: JString read _GetEXTRA_DEVICE; {class} property EXTRA_PERMISSION_GRANTED: JString read _GetEXTRA_PERMISSION_GRANTED; end; [JavaSignature('android/hardware/usb/UsbManager')] JUsbManager = interface(JObject) ['{6F603A25-E816-4012-9B23-054B428A4A75}'] function getDeviceList: JHashMap; cdecl;//Deprecated function hasPermission(device: JUsbDevice): Boolean; cdecl; overload;//Deprecated function hasPermission(accessory: JUsbAccessory): Boolean; cdecl; overload;//Deprecated procedure requestPermission(accessory: JUsbAccessory; pi: JPendingIntent); cdecl; overload;//Deprecated end; TJUsbManager = class(TJavaGenericImport<JUsbManagerClass, JUsbManager>) end; Что бы получить доступ к методам интерфейса используется следующая конструкция:
      JavaObject := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.USB_SERVICE); FUsbManager := TJUsbManager.Wrap((JavaObject as ILocalObject).GetObjectID); теперь я могу получить доступ к методам JUsbManager, а как получить доступ к методам JUsbManagerClass
      Вот пример кода на Java, который хочу реализовать в Delphi:
      UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); List<UsbSerialDriver> availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(manager); if (availableDrivers.isEmpty()) { return; } // Open a connection to the first available driver. UsbSerialDriver driver = availableDrivers.get(0); //Вот тут мы видим что из экземпляра класса мы вызываем openDriver, как это сделать в Delphi UsbDeviceConnection connection = manager.openDevice(driver.getDevice()); Как мы можем заметить этого метода в описании интерфейса нет, но есть в классе, как получить доступ к экземпляру класса?
    • От Мурат Бештоков
      Использую Delphi 10.3.
      Запускаю код программы, все работает.
      Как только увеличиваю размеры матриц, программа прекращает работу. В чем может быть проблема?
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...