2013-08-26 2 views
0

Я пишу WebService, который реализует 3 интерфейса. Один из них использует ссылку на COM-интерфейс с именем Interop.XXXOra. В общественном интерфейсе Interop.XXXOra я получил функции «GetShiftReportData» и «DoEndOfShift»:Извлечь значения из ClientDataSet

int DoEndOfShift(string ClientKey) 
    Member of EPS30Ora.IEPS30Svr 

dynamic GetShiftReportData(string ClientKey, int ShiftNo) 
    Member of EPS30Ora.IEPS30Svr 

GetShiftReportData returs ClientDataSet (Дельфи)

Это линия в моем WebService, где я называю it:

int shift_num = svr.DoEndOfShift(inputparams.ck); 
object shift_data = svr.GetShiftReportData(inputparams.ck, shift_num); 

У меня нет ошибки покупки. Я ничего не получаю в shift_data.

Мне нужно знать, как получить доступ к возвращенному cliendataset, чтобы отправить эти значения клиенту.

Любая помощь будет очень признательна. Thanks

ответ

1

В вашем вопросе (как название, так и последнее существенное предложение) вы, кажется, говорите, что у вас есть «возвращенный клиентский набор», к которому вы хотите получить доступ.

Я не знаю, что ваш клиент, но кроме интерфейса, ориентированного на данные, к TClientDataSet, я считаю, что лучший и простой способ получить доступ к данным TClientDataSet - использовать метод SaveToStream. Вы можете запросить данные в формате XML, который вы можете легко передать клиенту, который может использовать любую стандартную библиотеку для чтения данных.

Однако в строке над заключительным вопросом вы говорите, что ничего не получаете в shift_data. Если у вас нет TClientDataSet, вы, очевидно, не сможете использовать метод SaveToStream.

Надеюсь, что поможет немного.