我需要连接到外部 SQL 服务器来读取和写入数据集,但一直运行到错误页面。错误只是标准的“出了点问题”。消息,所以它实际上并没有为我提供任何信息。
为了测试一个基本的阅读过程,我设置了一个“ExternalSQL”类型的表和一个在打开时注册与外部服务器的连接的页面。我也尝试在打开公司时建立连接,这没有造成任何问题,直到我真正访问新页面。在调试期间打开页面时,VSC 在 OnInit 触发器之前停止运行并声称它在断点处停止。但不仅没有断点,编辑器也没有跳转到当前行,调用堆栈和变量都是空的。这是调试器暂停的唯一一次,在恢复运行后,错误页面再次打开,在到达 OnInit 触发器之前再次打开。
这是表的代码:
table 50100 "Export CES"
{
Caption = 'Export';
DataClassification = SystemMetadata;
TableType = ExternalSQL;
ExternalName = 'Export';
ExternalSchema = 'dbo';
fields
{
field(1; Number; Integer)
{
Caption = 'No.';
DataClassification = SystemMetadata;
}
field(2; Name; Text[255])
{
Caption = 'Name';
DataClassification = SystemMetadata;
}
field(3; Quantity; Integer)
{
Caption = 'Address';
DataClassification = SystemMetadata;
}
}
keys
{
key(PK; Number)
{
Clustered = true;
}
}
}
和表的代码:
page 50100 "Export CES"
{
ApplicationArea = All;
Caption = 'Export CES';
PageType = List;
SourceTable = "Export CES";
UsageCategory = Administration;
layout
{
area(content)
{
repeater(General)
{
field(Number; Rec.Number)
{
ApplicationArea = All;
}
field(Name; Rec.Name)
{
ApplicationArea = All;
}
field(Quantity; Rec.Quantity)
{
ApplicationArea = All;
}
}
}
}
trigger OnInit()
begin
if Database.HasTableConnection(TableConnectionType::ExternalSQL, 'MSSQLSERVER01') then begin
Database.UnregisterTableConnection(TableConnectionType::ExternalSQL, 'MSSQLSERVER01');
end;
Database.RegisterTableConnection(TableConnectionType::ExternalSQL, 'MSSQLSERVER01', 'Server=localhost\MSSQLSERVER01, 1433;Database=master;Trusted_Connection=True;');
Database.SetDefaultTableConnection(TableConnectionType::ExternalSQL, 'MSSQLSERVER01');
end;
trigger OnClosePage()
begin
Database.UnregisterTableConnection(TableConnectionType::ExternalSQL, 'MSSQLSERVER01');
end;
}