- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我有这段代码来处理客户端按模式发送的内容。如果他发送“getBENUds”,服务器将使用 SaveToString 方法发回该表的数据集。
然后,将其发送到客户端。 (我正在使用 Synapse )。
procedure TTCPSocketThrd.Execute;
var s: String;
strm: TMemoryStream;
ADO_CON: TADOConnection;
ADO_QUERY: TADOQuery;
DS_PROV: TDataSetProvider;
DS_CLIENT: TClientDataSet;
begin
CoInitialize(nil);
Sock := TTCPBlockSocket.Create;
try
Sock.Socket := CSock;
Sock.GetSins;
with Sock do
begin
repeat
if terminated then break;
s := RecvTerminated(60000,'|');
if s = 'getBENUds' then
begin
//ini ADO_CON
ADO_CON := TADOConnection.Create(Form1);
ADO_CON.ConnectionString := 'not for public';
ADO_CON.LoginPrompt := false;
ADO_CON.Provider := 'SQLOLEDB.1';
ADO_CON.Open;
//ini ADO_QUERY
ADO_QUERY := TADOQuery.Create(ADO_CON);
ADO_QUERY.Connection := ADO_CON;
//ini DS_PROV
DS_PROV := TDataSetProvider.Create(ADO_CON);
DS_PROV.DataSet := ADO_QUERY;
//ini DS_CLIENT
DS_CLIENT := TClientDataSet.Create(ADO_CON);
DS_CLIENT.ProviderName := 'DS_PROV';
//SQLQUERY Abfrage
ADO_QUERY.SQL.Clear;
ADO_QUERY.SQL.Add('SELECT * FROM BENU');
ADO_QUERY.Open;
//DSCLIENTDATASET bauen
strm := TMemoryStream.Create;
DS_CLIENT.Open;
DS_CLIENT.SaveToStream(strm);
end
else if s = 'getBESTEds' then
...
它说的行:DS_CLIENT.Open 抛出异常:
An exception has been thrown: class EDatabaseError. Text: 'missing data-provider or data package'.
如上所示,数据提供者已设置为“DS_PROV”,因此它必须是丢失的数据包。
但是 ClientDataSet 不应该从 DataSetProvider 获取数据吗? DataSetProvider 又从 ADOQuery 获取数据,ADOQuery 从数据库获取数据?
这是我目前所知的知识水平。我希望这不是太难,因为在我眼里,我所做的一切都是正确的。
最佳答案
使用
DS_CLIENT.SetProvider(DS_PROV);
或者在创建 DS_PROV 之后:(此时你的组件实际上还没有名称)
DS_PROV.name := 'DS_PROV';
关于Delphi:Clientdataset:.Open 上的 EDatabaseError;设置了 ProviderName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1270826/
我正在从客户端向服务器发送一个字符串,他应该将其发送回给我。这次是由ClientDataSet创建的流。不幸的是,接收(或发送?)目前不起作用。 注意:我将Synapse与阻止配合使用 插座。 服务器
我正在尝试从 MySQL5 数据库查询数据,但是当我使用 SQL 代码中的一些其他功能时,返回以下错误:[0x0005]:不支持操作。 我的SQL代码查询: Select s.nome, s.id
在某些情况下(在多用户环境中),当我Edit一个TADODataSet并Post它时,我收到一个异常阿多: "Row cannot be located for updating. Some valu
所以我有这段代码来处理客户端按模式发送的内容。如果他发送“getBENUds”,服务器将使用 SaveToString 方法发回该表的数据集。 然后,将其发送到客户端。 (我正在使用 Synapse
这个问题不太可能对任何 future 的访客有帮助;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于互联网的全局受众。如需帮助使这个问题更广泛适用,visit the h
我是一名优秀的程序员,十分优秀!