2017-02-12 10 views
-1

Привет, ребята!Как обновить базу данных клиентов из базы данных сервера?

Я новичок в программировании. Мне нужна ваша помощь!

Я использую Delphi-xe8. Приложение -> Многоуровневое приложение

У меня есть 2 приложения Позвоним на сервер и клиент.

ClientandServer

ClientDBandServerDB

мне нужно, когда клиент нажмите 'CONNECT', базы данных клиента должны обновить из базы данных сервера!

Примечание: Я использую в обеих сторонах SQLite.

Мне нужен самый простой способ.

Q? Как обновить базу данных клиентов из базы данных сервера с помощью привязки приложения?

+0

@tom, я знаю Извините. Я все еще не получаю правильный ответ. Я думаю, что у некоторых парней мой вопрос не возникает. Итак, теперь я задаю себе вопрос, давайте посмотрим !!! –

+0

С уважением, причина, по которой вы еще не получили правильного ответа (и я долгое время проводил на ней), заключается в том, что до сих пор вы практически ничего не показывали о вашем сервере и клиенте, поэтому довольно сложно точно определить какова ваша проблема. Какое программное обеспечение представляет собой ваши скриншоты. Фактически отображаются клиентская база данных и база данных сервера? Предположительно, программное обеспечение не является вашим клиентом, иначе вы не спросите. – MartynA

+0

Дорогой @ MartynA 9 На самом деле мне нравится ваш ответ для моего?. Что касается программного обеспечения Клиентская/серверная БД, я использую «SQLite Expert Personal» с помощью этого, я создаю ... * .bb и вы можете добавлять, удалять ... –

ответ

3

Мой ответ на ваш предыдущий q здесь: How to Get Images From Server using App Tethering показал вам, как передавать данные в TClientDataSet на сервере в одном на клиенте, используя привязку приложения.

Этот способ передачи зависит от способности TClientDataSet сохранять свои данные в потоке на стороне сервера и загружать его из потока на стороне клиента, используя его SaveToStream и LoadFromStream. В этом q, хотя вы не сказали, что представляют собой ваши 2 компонента rQuery, вы, очевидно, используете FireDAC, а его FDQuery, FDMemTable и т. Д. Имеют методы SaveToStream и LoadFromStream, которые работают одинаково, практически одинаково (от пользовательских pov) к TClientDataSet. Поэтому, чтобы «обновить» ваш клиентский набор данных с серверной стороны, вы можете использовать компоненты своего набора данных так же, как я показал в своем ответе на ваш другой q.

Для сохранения других читателей посетить другой д, код FireDAC является

Сервер:

procedure TServerApp.DataSetToStream; 
var 
    Stream : TMemoryStream; 
begin 
    Stream := TMemoryStream.Create; 
    FDQuery1.SaveToStream(Stream); 
    Stream.Position := 0; 
    TetheringAppProfile1.Resources.FindByName('BioLife').Value := Stream; 
end; 

Client

procedure TCliemtApp.TetheringAppProfile1Resources0ResourceReceived(const Sender: 
    TObject; const AResource: TRemoteResource); 
begin 
    AResource.Value.AsStream.Position := 0; 
    FDMemTable1.LoadFromStream(AResource.Value.AsStream); 
end;