clientdataset打开时IDE中的Stackoverflow

时间:2014-12-05 14:19:52

标签: mysql delphi stack-overflow

有几天我一直试图解决这个错误,只是在运行我的项目时我收到了stackoverflow错误。当我创建一个有四个查找字段的TClientDataSet时,错误就开始了。在调试模式下,我没有得到任何信息(或我理解的东西),当在设计模式下激活Clientdataset时,Delphi XE6 IDE只会崩溃并退出。

我使用MySQL。

enter image description here

以下是.DFM文件中的TClientDataset定义:

object cdstblocal: TClientDataSet
  Aggregates = <>
  Params = <>
  ProviderName = 'dsptblocal'
  Left = 1048
  Top = 192
  object cdstblocallocId: TIntegerField
    FieldName = 'locId'
    ProviderFlags = [pfInUpdate, pfInWhere, pfInKey]
  end
  object cdstblocallocEst_Id: TIntegerField
    FieldName = 'locEst_Id'
  end
  object cdstblocallocTip_Id: TIntegerField
    FieldName = 'locTip_Id'
  end
  object cdstblocallocBH_Id: TIntegerField
    FieldName = 'locBH_Id'
  end
  object cdstblocallocRio_Id: TIntegerField
    FieldName = 'locRio_Id'
  end
  object cdstblocallocDat_Id: TIntegerField
    FieldName = 'locDat_Id'
    Required = True
  end
  object cdstblocallocNome: TStringField
    FieldName = 'locNome'
    Size = 45
  end
  object cdstblocallocSigla: TStringField
    FieldName = 'locSigla'
    Size = 8
  end
  object cdstblocallocLat: TFloatField
    FieldName = 'locLat'
  end
  object cdstblocallocLong: TFloatField
    FieldName = 'locLong'
  end
  object cdstblocallocAlt: TFloatField
    FieldName = 'locAlt'
  end
  object cdstblocallocComent: TStringField
    FieldName = 'locComent'
    Size = 100
  end
  object cdstblocallocData: TSQLTimeStampField
    FieldName = 'locData'
  end
  object cdstblocallistbh: TStringField
    FieldKind = fkLookup
    FieldName = 'listbh'
    LookupDataSet = cdstbbh
    LookupKeyFields = 'bhId'
    LookupResultField = 'bhNome'
    KeyFields = 'locBH_Id'
    Lookup = True
  end
  object cdstblocallistrio: TStringField
    FieldKind = fkLookup
    FieldName = 'listrio'
    LookupDataSet = cdstbrio
    LookupKeyFields = 'rioId'
    LookupResultField = 'rioNome'
    KeyFields = 'locRio_Id'
    Lookup = True
  end
  object cdstblocallisttip: TStringField
    FieldKind = fkLookup
    FieldName = 'listtip'
    LookupDataSet = cdstblocal_tipo
    LookupKeyFields = 'locTipId'
    LookupResultField = 'locTipNome'
    KeyFields = 'locId'
    Lookup = True
  end
  object cdstblocallistest: TStringField
    FieldKind = fkLookup
    FieldName = 'listest'
    LookupDataSet = cdstblocal_estado
    LookupKeyFields = 'locEstId'
    LookupResultField = 'locEstNome'
    KeyFields = 'locEst_Id'
    Lookup = True
  end
end

1 个答案:

答案 0 :(得分:0)

我建议以下内容缩小此错误。在Windows.pas中的CompareString函数中设置断点。编辑断点的属性(高级)并选择“Log Call Stack”,清除“Break”复选框。

这应该在调用CompareString时将调用堆栈打印到Messages窗格。当你崩溃时仔细看看打印的callstacks,看看它是否比“Call Stack”窗格中的更完整。