现在的位置: 首页 > 综合 > 正文

DBAnyWhere 演示代码

2011年03月21日 ⁄ 综合 ⁄ 共 4568字 ⁄ 字号 评论关闭

  //设置IP和Port
  RemoteUdpConnection1.RemoteIp:=Edit1.Text;
  RemoteUdpConnection1.RemoteLoginPort:=StrToInt(Edit2.Text);
  RemoteUdpConnection1.RemoteDataPort:=StrToInt(Edit3.Text);
  //启动登陆(StartLogin属于非阻塞的方法)
  RemoteUdpConnection1.StartLogin;

procedure TForm1.RemoteUdpConnection1Connect(OnLine: Boolean);//onConnect事件
begin
  //显示在线状态
  if OnLine then Edit4.Text:='在线' else Edit4.Text:='离线';
end;

  //断开
  RemoteUdpConnection1.StopLogin;

  //获取终端列表
  dt.udp.GetClientsList(listbox1.Items);

  //sendtext方法的前两个参数如果都为空,意思为直接发信息给服务器
  //第一个参数是通过终端名发送,第二个参数通过终端mac发送,写其中一个就行
  dt.udp.SendText(edit2.Text,edit1.Text);

procedure Tdt.udpMsg(SourceMac, Msg: String);//onMsg事件
begin
  form1.Chat_Memo.Lines.Add('终端['+sourcemac+']对您说:'+msg);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  RemoteUdpDataSet2.Close;
  RemoteUdpDataSet2.SQL.Text:='insert into dtproperties(property,lvalue,version) values(:A,:B,:C)';
  RemoteUdpDataSet2.ParamByName('A').AsString:='Test';
  //操作blob字段
  RemoteUdpDataSet2.ParamByName('B').LoadFromFile(ExtractFilePath(ParamStr(0))+'Test.bmp',ftBlob);
  RemoteUdpDataSet2.ParamByName('C').AsInteger:=1;
  RemoteUdpDataSet2.ExecSQL;
  //刷新查询
  RemoteUdpDataSet1.Refresh;
end;

//TApplicationUpdate(在线升级)
三个属性: LocalRoot(本地目录), RemoteIp, RemotePort
procedure TMainForm.BtnUpdateClick(Sender: TObject);
var
  ini1: Tinifile;
begin
  if Application.MessageBox('升级前请您先退出待升级的程序文件!' + #13#10 +
    '继续操作请选确定,放弃请选取消!', '提示', MB_OKCANCEL +
    MB_ICONINFORMATION) = IDCANCEL then
  begin
    exit;
  end;
  ini1 := Tinifile.create(ExtractFilePath(application.ExeName) + 'netconfig.ini');
  ApplicationUpdate1.RemotePort :=StrToInt(ini1.ReadString('Update', 'RemotePort', '88'));
  ApplicationUpdate1.RemoteIp := ini1.ReadString('Update', 'RemoteIp', '127.0.0.1');
  ApplicationUpdate1.GetUpdateFilesList(nil);
  ApplicationUpdate1.UpdateFiles;
  ini1.Free;
  Application.MessageBox('恭喜您,升级完成,请测试您的程序!', '提示', MB_OK +
    MB_ICONINFORMATION);   
end;

procedure TMainForm.ApplicationUpdate1Update(UpdateFileName: String;//OnUpdate事件
  UpdatedBytes, FileSize, TotalUpdatedBytes: Integer);
begin
  pb1.Max:=FileSize;
  pb1.Position:=UpdatedBytes;//当前文件进度

  pb2.Max:=ApplicationUpdate1.TotalFileSize;
  pb2.Position:=TotalUpdatedBytes;//所有文件进度

  Edit1.Text:=UpdateFileName;
  Edit1.Repaint;
end;

//数据索引
  //获取所有字段
  RemoteUdpDataSet1.GetFieldNames('authors',ComboBox1.Items);//'authors', 表名

  //排序
  if ComboBox1.ItemIndex>-1 then
    RemoteUdpDataSet1.Sort(ComboBox1.Text,TSortType(ComboBox2.ItemIndex));

  //从服务器获取文件
  RemoteUdpConnection1.GetFileFromServer(RemoteFileName,LocalFileName);

  //上载文件到服务器
  RemoteUdpConnection1.PutFileToServer(LocalFileName,RemoteFileName);

//sql 查询
  RemoteUdpDataSet1.Close;
  RemoteUdpDataSet1.SQL.Text:='Select * from Employee where job_id>:Id';
  RemoteUdpDataSet1.ParamByName('id').AsInteger:=5;
  RemoteUdpDataSet1.Open;

//分页查询
RemoteUdpDataSet1.SelectType:=SelectPage;
RemoteUdpDataSet1.FirstPage;
RemoteUdpDataSet1.PriorPage;
RemoteUdpDataSet1.NextPage;
Edit2.Text:='第'+IntToStr(RemoteUdpDataSet1.PageNo)+'页/共'+IntToStr(RemoteUdpDataSet1.PageNum)+'页';

//执行存储过程
  RemoteStoredProc1.Close;
  RemoteStoredProc1.ProcedureName:='byroyalty';
  //获取参数列表
  RemoteStoredProc1.RefreshParameters;
  //给参数赋值
  RemoteStoredProc1.Parameters.ParamValues['@percentage']:=100;
  //执行存储过程
  RemoteStoredProc1.Open;

  //设置保持连接,这样在执行中,只要不断线,服务器就一直保持和数据库的连接
  RemoteUdpConnection1.KeepConnection:=True;

//创建临时表 
RemoteUdpDataSet1.Close;
  RemoteUdpDataSet1.sql.Text:='Create table #tempTable('+
                              'Id Integer not null,'+
                              'Text Varchar(50) null)';
  RemoteUdpDataSet1.ExecSQL;

//往临时表里面插入数据
  RemoteUdpDataSet1.Close;
  RemoteUdpDataSet1.SQL.Text:='insert into #TempTable(id,Text) values(:A,:B)';
  RemoteUdpDataSet1.ParamByName('A').AsInteger:=1;
  RemoteUdpDataSet1.ParamByName('B').AsString:='TestText';
  RemoteUdpDataSet1.ExecSQL;

//查询临时表数据
  RemoteUdpDataSet1.Close;
  RemoteUdpDataSet1.SQL.Text:='select * from #TempTable';
  RemoteUdpDataSet1.Open;

//事务处理
  //开始事务
  RemoteUdpConnection1.BeginTrans;
  try
    RemoteUdpDataSet1.Close;
    RemoteUdpDataSet1.SQL.Text:='update jobs set job_desc=''test'' where job_id=1';
    RemoteUdpDataSet1.ExecSQL;
    RemoteUdpDataSet1.Close;
    RemoteUdpDataSet1.SQL.Text:='update jobs set job_desc=''test1'' where job_id=2';
    RemoteUdpDataSet1.ExecSQL;
    RemoteUdpConnection1.CommitTrans;//提交事务
    ShowMessage('事务操作成功!');
  Except
    on E:exception do
    begin
      RemoteUdpConnection1.RollbackTrans;//回滚事务
      Showmessage(E.Message);
    end;
  end;

  //设置为批量提交模式
  RemoteUdpDataSet1.LockType:=etBatchOptimistic;

  //通过RemoteUpdateSQL方式批量提交(一般是复杂提交或者自定义提交)
  RemoteUdpDataSet1.RemoteUpdateObject:=RemoteUpdateSql1;
  RemoteUdpDataSet1.UpdateBatch;

  //系统默认的批量提交方式
  RemoteUdpDataSet1.RemoteUpdateObject:=nil;
  RemoteUdpDataSet1.UpdateBatch;

抱歉!评论已关闭.