최종 결론.. 델파이 ADO관련 버그 인것으로 여겨집니다..
다음과 같은 TEST를 했습니다..
테이블에는 NUMERIC(7) TYPE으로 정의된 필드가 존재합니다.
첫번째 실험자의
클라이언트환경은 WINDOWS XP 에서..
MDAC 2.8... 로
ASP에 MS-SQL OLEDB Provider로 Windows NT서버+MS-SQL7과 Windows 2003서버+MS-SQL2000을 접근한 결과
음수 수치를 제대로 처리해 보여줬으며..,
두번째 실험자의
클라이언트환경은 WINDOWS 2000 에서..
MDAC 2.7... 로
ASP에 MS-SQL OLEDB Provider로 MS-2000서버의 MS-SQL2000을 접근한 결과
음수 수치를 제대로 처리해 보여줬습니다..
그러나
본인이..,
Win98SE+MDAC2.8과 Windwos2000+MDAC2.8 설치 된곳에서 각각
델파이7 버전에 TADO쿼리로 Windows NT 4.0+MSSQL7에 접근하여 테스트한 결과는
음수 처리 오류가 발생했습니다..
폼소스와 BDE 시와 ADO시 화면을 같이 첨부했습니다.
----------------------------------------------------------------
폼의 소스 입니다.
object Form1: TForm1
Left = 192
Top = 107
Width = 696
Height = 536
Caption = 'Form1'
Color = clBtnFace
Font.Charset = HANGEUL_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #44404#47548
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 12
object DBGrid1: TDBGrid
Left = 40
Top = 88
Width = 553
Height = 233
DataSource = DataSource1
ImeName = #54620#44397#50612'('#54620#44544')'
Options = [dgEditing, dgAlwaysShowEditor, dgTitles, dgIndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgConfirmDelete, dgCancelOnExit]
TabOrder = 0
TitleFont.Charset = HANGEUL_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -12
TitleFont.Name = #44404#47548
TitleFont.Style = []
Columns = <
item
Expanded = False
FieldName = 'aa1'
Title.Caption = #54805#48320#54872#54620' '#54596#46300
Visible = True
end
item
Expanded = False
FieldName = 'aa2'
Title.Caption = #44592#48376'TYPE'#51032' '#54596#46300
Visible = True
end>
end
object RadioButton1: TRadioButton
Left = 408
Top = 64
Width = 52
Height = 17
Caption = 'BDE'
TabOrder = 1
OnClick = RadioButton1Click
end
object RadioButton2: TRadioButton
Left = 472
Top = 64
Width = 52
Height = 17
Caption = 'ADO'
Checked = True
TabOrder = 2
TabStop = True
OnClick = RadioButton2Click
end
object Memo1: TMemo
Left = 40
Top = 344
Width = 569
Height = 129
Font.Charset = HANGEUL_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #44404#47548#52404
Font.Style = []
ImeName = #54620#44397#50612'('#54620#44544')'
Lines.Strings = (
'SELECT cast((ITEM_HCOUNT * -1) as int) aa1,'
' (ITEM_HCOUNT * -1) aa2'
' FROM BLRM_ITEM ')
ParentFont = False
ReadOnly = True
TabOrder = 3
end
object DataSource1: TDataSource
DataSet = ADOQuery1
Left = 208
Top = 40
end
object Query1: TQuery
Active = True
DatabaseName = 'BLRM_DB'
SQL.Strings = (
'SELECT cast((ITEM_HCOUNT * -1) as int) aa1,'
' (ITEM_HCOUNT * -1) aa2'
' FROM BLRM_ITEM ')
Left = 104
Top = 24
end
object ADOQuery1: TADOQuery
Active = True
ConnectionString =
'Provider=SQLOLEDB.1;Password=BEST;Persist Security Info=True;Use' +
'r ID=BEST;Initial Catalog=BESTLRM;Data Source=xxx.XXXX.XXX.XXX
CursorType = ctStatic
Parameters = <>
SQL.Strings = (
'SELECT cast((ITEM_HCOUNT * -1) as int) aa1,'
' (ITEM_HCOUNT * -1) aa2'
' FROM BLRM_ITEM ')
Left = 336
Top = 32
end
end
---------------------------------------------------------------------------
http://www.delmadang.com/cwb-bin/CrazyWWWBoard.exe?db=dmdlec&mode=read&num=2392&page=1&backdepth=1
에 결과 화면 있습니다..
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=news&no=243
하지만 이 업데이트 자체에 다른 버그가 여러개 포함되어 있는 듯 하니 업데이트 2가 나올 때까지 기다리시는 편이 나을 듯...