首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi 连接数据库EDatabaseError‘qryVideo: Field'sName' not Found’,该怎么解决

2012-04-13 
delphi连接数据库EDatabaseError‘qryVideo: FieldsName not Found’错误如题代码如下:function TGlobalDa

delphi 连接数据库EDatabaseError‘qryVideo: Field'sName' not Found’
错误如题
代码如下:
  function TGlobalData.fGetCameraInformation(lTerID,lCamIndex: Integer): Boolean;
var
  sql: string;
  i: Integer;
begin
  Result := False;
  qryAlarm.Close;
  sql := ' select top 1 Area.IID as uAreaID,Area.sName as uAreaName,'+
  ' Ter.iid as uTerID,Ter.iParentID as uTerParentID,Ter.sName as uTerName,'+
  ' Ter.sIPAddr as uTerIP,Ter.sLoginTag as uTerLoginTag,Ter.sLoginPWD as uTerLoginPWD, '+
  ' Ter.sLinkAddr as uTerLinkAddr,Ter.sLinkTel as uTerLinkTel,Ter.sManager as uTerLinkMaster,'+
  ' Cam.iid as uCameraID,Cam.iParentID as uCamParentID, Cam.sName as uCameraName,Cam.iCameraIndex as uCameraIndex'+
  ' from TTMain as Area,TTMain as Ter, TTmain as Cam'+
  ' where Ter.iParentID=Area.iid and Cam.iParentID=Ter.iid and'+
  ' Area.iobjtype=7 and Ter.iobjtype=50 and Cam.iobjtype=8 and '+
  ' Ter.iid='+inttostr(lTerID)+' and Cam.iCameraIndex ='+inttostr(lCamIndex);

  qryAlarm.Recordset := Connect.GetRecordset(sql);
  qryAlarm.Open;
  if qryAlarm.RecordCount > 0 then
  begin
  Main.uAreaName := qryAlarm.FieldByName('uAreaName').AsString;
  Main.uAreaID := qryAlarm.FieldByName('uAreaID').AsInteger;
  Result := True;
  end;
end;

procedure TGlobalData.ConnectStreamMsg(Sender: TObject; streamID: Integer; buf: PAnsiChar; bufLen: Integer);
var
  i: Integer;
  qry: TADOQuery;
begin
  try
  if StreamID = MSG_ALARM_HAPPENALARM then
  begin
  if not Main.showVideoProcess then
  Main.tbAbout.Click;
  Application.ProcessMessages;
  iDeviceProcess.pnlLog.Visible := True;
  AlarmItem := PIVSAlarmUpLoadInfo(Integer(Buf) + 70);
  if not fGetCameraInformation(integer(AlarmItem.Data),AlarmItem.CameraIndex) then
  Exit;
  try
  qry := TADOQuery.Create(nil);
  sql := ' select iid from TTMain where iobjtype=18 and iParentID='+inttostr(Main.uAreaID);
  Main.uGisID := -1;
  qry.Recordset := Connect.GetRecordset(sql);
  if qry.RecordCount > 0 then
  begin
  Main.uGisID := qry.FieldS[0].AsInteger;
  end;
  finally
  qry.Free;
  end;
  end;
  end;
end;

[解决办法]
提示多明显,缺少qryVideo字段,你看看你的sql中是否select出这个字段了

热点排行