DG> ����� �����/������ ����������� ���������� ������ ���������� ��������. � ����� �
�� ����� ��� ������ "������ ���������� ��������"
With best regards, Vladimir Ulchenko
���-��, �������, �������� 18 2009, � 16:02, Vladimir Ulchenko ������� � Dmytry
Ginzburg �� ����� ��������, �� ��� ���ң� _"Re: �������� ������ TClientDataset
����� ����������� ������"_
VU> From: "Vladimir Ulchenko" <va...@santel.ru>
VU> Hello, Dmytry!
VU> You wrote to All on Sun, 13 Sep 2009 00:35:09 +0400:
DG>> ����� �����/������ ����������� ���������� ������ ���������� ��������. �
DG>> ����� �
VU> �� ����� ��� ������ "������ ���������� ��������"
�������� ��������. � ����� ClientDataSet->SaveToStream(...). ����� ���� ����
����� � �������� ����� � ������� ����� ������ cout. � �� ������ ������� � ����
����� ������ ���������, ������� ��������� ��� �� ����. ����� ���� ��������
����� ����� ���������� ������, ������� � ������, �� ��, ��� � ������� �� �����,
� �� ���� ��������� � �������, �.�. ������� ������ Datatype mismatch ��� ���-��
� ���� ����. � ���ۣ��� ���������� � ���������, ��� ��� ������ ����������
��������� �������� ��� ��������� FProviderEof=true. � ����� � �����������, ���
���� ������ � ���� ������� Eof, ������� ����������� ���ۣ� ����� ����. H� ���
��� � ���� ������� ��� �� �������. ������, � ������� ���� � ������ ��ԣ�:
������� ������ ���������� � �������� � ��� ����� COM. H� � ��� � ��������
�������. ������� ���� ��������, ��� ��� �������� ����������� �������, ������ ��
���������� � ���� bpf-����, ���� � ������� ���, � ���������� ���� ������
_Module �� ����������. ��� �������� � ����� ��������� ���� �������� ����� bpf �
���� cpp, ��� � ���� ���������� ������� WinMain. H� ������ �������� ��������,
��� ��������� ����������� WinMain ��� ��������� ������ Free. ��������� ���� ��
���������� ATL ��� ������������� ������� ������ COM-������� ���������� ������
������������ ������� _Module, �� � ����� ��������� ����� �������� ����� �
����������� ������ WinMain ������� WaitForSingleObject(hEvent); ��� hEvent -
���������� �������, ������� ���������� ����������������, � ��������������� �
����������� COM-������� (����� �� ���� ���������� ��� �������). �
��������������� ���� ������, �� � ���� �� ����� ������������ �� ���� ������.
��� ������� ������� DComConnection->Connect(); ���
DComConnection->GetAppServer() ������ �������� ���������. � ���������� �����
�������� ������ WinMain ����� ���������, �� ��� �� �������. ������� ��������
��������� � ��� ������ �� ����. ��� ��� ���� ����� ���, ���� �� ����
����������.
����� ��� ����� ����������, Vladimir.�������.
DG> ����� ����� ���������� ������, ������� � ������, �� ��, ��� � ������� �� �����,
DG> � �� ���� ��������� � �������, �.�. ������� ������ Datatype mismatch ��� ���-��
DG> � ���� ����. � ���ۣ��� ���������� � ���������, ��� ��� ������ ����������
DG> ��������� �������� ��� ��������� FProviderEof=true. � ����� � �����������, ���
DG> ���� ������ � ���� ������� Eof, ������� ����������� ���ۣ� ����� ����. H� ���
�������� ������������ "������� ���������� ��������" � ������ ���. ���� �� ��������������� �������
������� �� ������ � ������� xml, �.�. ����� ���� � ������� ��������� �������, � ��� �� ������
��������� �������� ������ � ����� ������ � ������� ����������, ������ ��� ����� ���������
��� ��� �������� �� ����� ������ �� ���
��. ���� ������ ��������� ������ ��� "���-�� � ���� ����" �� �������� � ������ ������ �������� �
���� "���-�� ��� � ���-�� ���" :)
���-��, �����������, �������� 21 2009, � 09:28, Vladimir Ulchenko ������� �
Dmytry Ginzburg �� ����� ��������, �� ��� ���ң� _"Re: �������� ������
TClientDataset ����� ����������� ������"_
VU> From: "Vladimir Ulchenko" <va...@santel.ru>
VU> Hello, Dmytry!
VU> You wrote to Vladimir Ulchenko on Sat, 19 Sep 2009 00:01:11 +0400:
DG>> ����� ����� ���������� ������, ������� � ������, �� ��, ��� � ������� ��
DG>> �����, � �� ���� ��������� � �������, �.�. ������� ������ Datatype
DG>> mismatch ��� ���-�� � ���� ����. � ���ۣ��� ���������� � ���������, ���
DG>> ��� ������ ���������� ��������� �������� ��� ��������� FProviderEof=true.
DG>> � ����� � �����������, ��� ���� ������ � ���� ������� Eof, �������
DG>> ����������� ���ۣ� ����� ����. H� ���
VU> �������� ������������ "������� ���������� ��������" � ������ ���. ���� ��
VU> ��������������� ������� ������� �� ������ � ������� xml, �.�. ����� ���� �
VU> ������� ��������� �������, � ��� �� ������ ��������� �������� ������ �
VU> ����� ������ � ������� ����������, ������ ��� ����� ���������
�ݣ ��� ������� ��� ������� � �������. H������, ���������� ��������� �� �����
������ ���� ������� �� Delphi
��� ������, ������� ������ ��������� ������ � ������ ��������� �������. ��� ���
�������
_!--==> � ���� Windows Clipboard ����������... <==--!_
//---------------------------------------------------------------------------
TMemoryStream *str=new TMemoryStream();;
#pragma argsused
DataModule2->ClientDataSet1->SaveToStream(str,dfXML);//�������� � �������� �
DataModule2->xml ������
t=str->Size;
char *p=(char *)&t;
//for(int i=0;i<4;cout<<*p,p++,i++);
s=str->Size;
s="I've saved query result to stream It has size "+s;
//gets(&c2);
OutputDebugString(s.c_str());
char *c1=(char *)str->Memory;
s="I've got the stream's address";
OutputDebugString(s.c_str());
//cout<<str->Size<<'\n';
for(int i=0;i<str->Size;cout<<*c1,c1++,i++);//��� ����� � ������� � ����� cout.
s="I've sent stream to cout";
OutputDebugString(s.c_str());
}
__finally{
if(DataModule2)DataModule2->Free();
if(str)str->Free();
CoUninitialize();
}}
catch(Exception *e){OutputDebugString(e->Message.c_str());
cout<<e->Message.c_str();}
return 0;
}
_!--==> � ���� Windows Clipboard �������������... <==--!_
������ ��������� �������. ��� ��������� ���������� ���������� ������� �������
�� ���������� ������ � ������ ���������
_!--==> � ���� Windows Clipboard ����������... <==--!_
procedure TDebugForm.Button2Click(Sender: TObject);
var l,c,q,l1,e:cardinal;
b:boolean;
p,p1:Pointer;
str:TMemoryStream;
Thread:TDebugThread;
c1:^cardinal;
s:string;
i:integer;
w:char;
begin
DataSource1.DataSet:=ClientDataSet1;
Thread:=TDebugThread.Create(false);
while Thread.info1.hprocess=0 do Application.ProcessMessages;//���, ���� �����
������� �������� ������� (������).
begin
//ShowMessage('�������� ������� ������');
{while not(PeekNamedPipe(Thread.Hinwr,nil,0,nil,@l,nil)and(l>0))do
begin
q:=GetLastError;
StatusBar1.SimpleText:=IntToStr(q);
Application.ProcessMessages;
end;
GetMem(p2,l);
b:=ReadFile(Thread.Hinwr,p2,l,l1,nil);
if b then
begin
s:=string(p2);
ShowMessage(s);
end;}
p1:=PChar(Edit1.Text+#13+#10);
c:=length(Edit1.Text)+2;
b:=WriteFile(Thread.houtr,p1^,c,l,nil);
Application.ProcessMessages;
if not b then
begin
q:=GetLastError;
StatusBar1.SimpleText:='������ ������ � ����� '+IntToStr(q);
end;
if b then
begin
{
GetMem(p2,l);
b:=ReadFile(Thread.Hinwr,p2^,l,l1,nil);
if b then
for i:=0 to l1-1 do
begin
s:=s+p2^;
Inc(p2);
end;}
p1:=PChar(Edit2.Text+#13+#10);
e:=length(Edit2.Text)+2;
b:=WriteFile(Thread.houtr,p1^,e,l,nil);
c:=c+e;
Application.ProcessMessages;
if b then
begin
while not(PeekNamedPipe(Thread.Hinwr,nil,0,nil,@l,nil)and(l>0))do
begin
q:=GetLastError;
StatusBar1.SimpleText:=IntToStr(q);
Application.ProcessMessages;
end;
GetMem(p,l);//��� � ���� ����� � ������� ������ ��� ��������� ������.
���������� l ����� �� �� ��������, ��� � ������ � ���� ������� ����� ������
b:=ReadFile(Thread.Hinwr,p^,l,l1,0);
if b then
begin
str:=TMemoryStream.Create;
str.Write(p,l);
str.Position:=0;
ClientDataSet1.LoadFromStream(str);//��� ��� � ������� ������
Mismatch in DataPacket
str.Free;
FreeMem(p);
end;
end;
end;
end;
end;
_!--==> � ���� Windows Clipboard �������������... <==--!_
����� ������ ������ � ����������� dcu, � ���������, ��� ������ ��������� ���
���������� ������ OpenCursor �������� �� ����� ������
_!--==> � ���� Windows Clipboard ����������... <==--!_
Check(FDSBase.AppendData(DataPacket, ProviderEOF));
_!--==> � ���� Windows Clipboard �������������... <==--!_
��� ޣ� ProviderEOF ����� true. � �������������� � �����������, ��� ��������
������ � �������� �������, ������� �� �����-�� ������� ��� �������� �����
����������� ����� ������, ��������� �� ���� ����������, �.�. �����
������������� � ����������� ������ ����� ���� ����������.
VU> ��� ��� �������� �� ����� ������ �� ���
H� � ��� � ţ ���� ����� ������?
VU> ��. ���� ������ ��������� ������ ��� "���-�� � ���� ����" �� ��������
VU> �
VU> ������ ������ �������� � ���� "���-�� ��� � ���-�� ���" :)
H� ��� � ������ �������� ��������. ���� �����-������ ����, ���� ��������, �����
��������� ��������.
����� ��� ����� ����������, Vladimir.�������.
DG> ��� ޣ� ProviderEOF ����� true. � �������������� � �����������, ��� ��������
ProviderEOF �������� ��� ������ � ���������� ����������� � ������ ����� ���������
DG> ������ � �������� �������, ������� �� �����-�� ������� ��� �������� �����
DG> ����������� ����� ������, ��������� �� ���� ����������, �.�. �����
DG> ������������� � ����������� ������ ����� ���� ����������.
������ ���� ����� ���������� �����-�� ������ ������� ��� �� ������ ���� �������� ���������� ����
��������� ������
DG> H� � ��� � ţ ���� ����� ������?
�������� ���� � ���������� ������ ������ (�� �����-�� ������� �������-�������� �� ���������� ���,
�������� ������ ������ ������ � ���� ������) ���� � ����� ������ ��� �� ������ ������ �������
������� � ��� ��������
������ ����������� �������� ���� ����� ���� �� ������� ��������� � ������ cds
������ ������� ������ �� ��������
������ ���� ����� ��� ������������, ����� �������� �������� �� ���� ����������
������ ������������� ������ ������ ������ ���� �������� ��� ������ � ��� ����
���� ��������
���-��, �����, �������� 23 2009, � 17:34, Vladimir Ulchenko ������� � Dmytry
Ginzburg �� ����� ��������, �� ��� ���ң� _"Re: �������� ������ TClientDataset
����� ����������� ������"_
DG>> ��� ޣ� ProviderEOF ����� true. � �������������� � �����������, ���
DG>> ��������
VU> ProviderEOF �������� ��� ������ � ���������� ����������� � ������ �����
VU> ���������
�����. ������� �� ����������, ������ ���� �����.
DG>> ������ � �������� �������, ������� �� �����-�� ������� ��� ��������
DG>> �����
DG>> ����������� ����� ������, ��������� �� ���� ����������, �.�. �����
DG>> ������������� � ����������� ������ ����� ���� ����������.
VU> ������ ���� ����� ���������� �����-�� ������ ������� ��� �� ������ ����
VU> �������� ���������� ���� ��������� ������
� ��� ��� ���� ������� ����. �ݣ ��� �������. � �� ��������������.
DG>> H� � ��� � ţ ���� ����� ������?
VU> �������� ���� � ���������� ������ ������ (�� �����-�� �������
VU> �������-�������� �� ���������� ���, �������� ������ ������ ������ � ����
VU> ������) ���� � ����� ������ ��� �� ������ ������ ������� ������� � ���
VU> ��������
VU> ������ ����������� �������� ���� ����� ���� �� ������� ��������� � ������
VU> cds ������ ������� ������ �� �������� ������ ���� ����� ��� ������������,
VU> ����� �������� �������� �� ���� ���������� ������ ������������� ������
VU> ������ ������ ���� �������� ��� ������ � ��� ����
�ӣ ��������� ������� �����. � ��� �� ��� �����������, �� ���� �� ���̣�. ����
� ���, ��� ���� ������������� ������ ������������ Delphi ������ �������, � ���
����� � API ������� ����� ���������� �� ���������, � ���� ����������. � ������
������ � ������� ReadFile ���� ���� ������ ������������ ���������. H� �����
���������� ��, ��� ������� �������� � ��� � �� �����. ������� ���� ��������
�������� ���: ���� ���������� ��� ����������� WinXP (��������). �������
COM-������ �� ����������� ��� ����������� ��� Win2k ��� Win2k3. � ������� �
�������� ���������� ����� COM-������� �� ���������� ����������, �.�. ��
���������� ����� ������� ��� �������� ��������������. H� ��������� ������ �����
�������� � �� MSSQL. � � ������������� ������ ���������� � ������ �� �����
�������� ������ ����� ADO ��� DBExpress (� ����� ������� ������������ oledb).
��� ��� � ޣ� �������� ��������. � ���� ��������� ������ �������� AV �
��������� ����������� �� ���������� SQL ��������, ������� ���������� ������
������. ���ޣ� ��� ����������� ������, ���� ������ ������� ��� Win2k. �, �
���������, ����� �������� � ���������. � ������� ������ �� �������� ����� ����
����������� � oledb, �� ����� ��������� ������������ ���������, ��� ��������
����� ���أ����. � ����� ��������� � �� �� ������� ���� ���������, � � ����
��������� ������ ����� ����� � TClientDataSet. H� ������ ����� ����
������������� � ���� ������̣���� COM-������� �� ���������� midas.dll. �����
������� ��� ���������� ���������� ������� �� ������� ���������� (����������� ��
��������� ��� ������������� ����������� COM-�������) ��� ����������
LoadFromStream ������ ������������ AV � midas.dll. ����� ������� ����������,
��� �������������� COM-������ ����������� �� ����� ������� COM-��������� �
�����-�� ������� ������ ������, �������������� ���������� COM, ��������� �����
�� ����� ������ ������ � oledb, ����� ��������� ������. ���������� �������� ��
������ ������������ ������������ �� �������. ��������������, ��� �������
�������� ����� ����� ������ �������� � ��, ��������� ��� ����������� ��������,
�� ��� ���� �� ���������� �� COM. ��� ����������� ������ � MSSQL ����� COM ��
�������� � �� ����, ���� ��� �����, ���������� (bde �� ����������). ������
������� ��������������, ��� ��������������� ������ TClientDataSet
TMemoryDataSet �� ���������� Rx. H� �� �� ����� ���� ������������. ������
�������, ������� � ������ ������������ ����������� ��� � ޣ�. ��� � �����,
������ ����������� ������ � ����������������� COM-���������. ��� �������������
COM-������� � ���� ������ �� ����, �� ���� �� ������� �������� � �������
COM-��������, �� ����� ���� �� ������� �������� �� ����������� ��� TDataSet,
������� �� ���� � ��������� ��������, �� ������� �� ��� ������� ����� ����
�������� � �ϣ� ����������. H� ��� ����� ����� �������� ������������� ������. �
��������� ������� ���� ����� �� ���� TRemoteDataModule (������ ������������
����). H� ���������, ��� Borland ��ģ� ���� � ���� ����� ����� ���������. ���
������ �� ��������� � ����, ����� ���� � ���� ������������ ������ Free, �.�.
��� �������� �������. H� ����� �� ��������� ��������� COM-������� � ����������
�����������. ������ �� ��� �����������, ������� � ������ ���������� � ��������
WinMain, ������� ���� ����������� ���. ��� ���������� � ������ ����������
COM-������� ��������� bpf-����, � ������� ��������� ������ ATL. H� ��
���������� ��� ������� � ���������� ����������� ���� ���������� ����� ����� ��
�����������. H� ��� �� ����, � ��������� ��� �������� � ���� � ����������� cpp,
��� ���������� ������� WinMain. ��� ��� ���� ������� ���� ��� ������ Free �
������� ������ ����� ��������� ������������� ��� �������������, � ����� ������
��������� Wait-�������, ������� ����� ���������� ������� ����� � ������
��������, ���� ���������� ���� �� ���� ������ �� ��������� COM-�������. �������
����� ���
_!--==> � ���� Windows Clipboard ����������... <==--!_
//---------------------------------------------------------------------------
TComModule _ProjectModule(0 /*InitATLServer*/);
TComModule &_Module = _ProjectModule;
// The ATL Object map holds an array of _ATL_OBJMAP_ENTRY structures that
// described the objects of your OLE server. The MAP is handed to your
// project's CComModule-derived _Module object via the Init method.
//
BEGIN_OBJECT_MAP(ObjectMap)
OBJECT_ENTRY(CLSID_MyServer, TMyServerImpl)
END_OBJECT_MAP()//��� �ӣ ����������� �� bpf-�����, �� ��������� ����������,
�.�. ������ �����������������.
#pragma argsused
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,
int nCmdShow)
{if(!strstr(lpCmdLine,"regserver")&&(!strstr(lpCmdLine,"unregserver")))WaitForS
ingleObject(hEvent,INFINITE);
return 0;
}
_!--==> � ���� Windows Clipboard �������������... <==--!_
�ӣ ����� �� ������. H� ��� ������� ������������ � ������ ������� �����
DCOMConnection ������ �������� �������������, �� � ������ ������ ����. ��������
������ Wait-������� ������� ����� ���������. ������ ��� ��� �� �����. ���������
��� ���-������ � ޣ� � �� ����.
����� ��� ����� ����������, Vladimir.�������.
DG> COM-������ �� ����������� ��� ����������� ��� Win2k ��� Win2k3. � ������� �
DG> �������� ���������� ����� COM-������� �� ���������� ����������, �.�. ��
DG> ���������� ����� ������� ��� �������� ��������������. H� ��������� ������ �����
���� ���������� �������� � ������ ���������� ���-�������� ������� ����������� �� ������ �� ������
����� ��� ���������� �� ���
�� ���������� ������ � � ���� �� ������, �������� �� ��� ��������� ���-����
DG> �������� � �� MSSQL. � � ������������� ������ ���������� � ������ �� �����
DG> �������� ������ ����� ADO ��� DBExpress (� ����� ������� ������������ oledb).
� �� �����? ����� ���������� ��� ���� ���-������ �������-��������������� � ���������� �������� �����
odbc?
DG> ������� ��������������, ��� ��������������� ������ TClientDataSet
DG> TMemoryDataSet �� ���������� Rx. H� �� �� ����� ���� ������������. ������
���� ��� �������� kbmMemTable �� � ������ ���� ��������� ��������� � ������� ����� ����
DG> ������ �� ��������� � ����, ����� ���� � ���� ������������ ������ Free, �.�.
���� ������� ���� �� �����, ��� ����� �� ������ ��������
free �������� ������ DECLARE_THREADING_MODEL(otFree)
� ������ � ����������� �������� ATL ���� ������� ������� �������...