怎么将ACCESS数据转为SQL数据库语句
如何将ACCESS数据转为SQL数据库语句
A:
function TTreeUtils.AddNode(ACaption: string = '新节点'; Index: integer = -1;
ANode: TTreeNode = nil): Boolean;
var Node, NewNode: TTreeNode;
PData: PNodeData;
begin
Result := True;
try
if ANode = nil then Node := TreeView.Selected
else Node := ANode;
New(PData);
PData^.Index := getMaxIndex + 1;
PData^.Caption := ACaption;
sqlStr := 'Insert into ' + TableName + ' (' + FieldIndex + ',' + FieldPID +
',' + FieldCaption + ')' + ' values(' +
IntToStr(PData^.Index) + ',';
if Node = nil then Node := TreeView.Items.Item[0];
if Node.Level = 0 then
sqlStr := sqlStr + '0,"' + ACaption + '")'
else
sqlStr := sqlStr + IntToStr(PNodeData(Node.Parent.Data)^.Index) + ',"' + ACaption + '")';
if execSQL(sqlStr, errStr) then
begin
if Node.Level = 0 then
NewNode := TreeView.Items.AddChildObject(Node, ACaption, PData)
else NewNode := TreeView.Items.AddObject(Node, ACaption, PData);
NewNode.ImageIndex := 1;
NewNode.SelectedIndex := 2;
end;
except
Result := False;
end;
end;
B:///////
function TTreeUtils.ModifyNodeCaption(NewCaption: string;
Node: TTreeNode): boolean;
begin
sqlStr := 'Update ' + TableName + ' set ' + FieldCaption + '="' + NewCaption + '" where '
+ FieldIndex + ' = ' + IntToStr(PNodeData(Node.Data)^.Index);
if execSQL(sqlStr, errStr) then
begin
Node.Text := NewCaption;
PNodeData(Node.Data)^.Caption := NewCaption;
end;
end;
以上是以ACCESS为数据库时的语句,现换成SQL数据就出错,如何修改
------解决思路----------------------
Access 数据库能用的,MSSQL 数据库应该也可以用額。
两个数据库中的表是不是一样的?包括主键。
將最后执行出错的SQL语句帖出来額。
A:
function TTreeUtils.AddNode(ACaption: string = '新节点'; Index: integer = -1;
ANode: TTreeNode = nil): Boolean;
var Node, NewNode: TTreeNode;
PData: PNodeData;
begin
Result := True;
try
if ANode = nil then Node := TreeView.Selected
else Node := ANode;
New(PData);
PData^.Index := getMaxIndex + 1;
PData^.Caption := ACaption;
sqlStr := 'Insert into ' + TableName + ' (' + FieldIndex + ',' + FieldPID +
',' + FieldCaption + ')' + ' values(' +
IntToStr(PData^.Index) + ',';
if Node = nil then Node := TreeView.Items.Item[0];
if Node.Level = 0 then
sqlStr := sqlStr + '0,"' + ACaption + '")'
else
sqlStr := sqlStr + IntToStr(PNodeData(Node.Parent.Data)^.Index) + ',"' + ACaption + '")';
if execSQL(sqlStr, errStr) then
begin
if Node.Level = 0 then
NewNode := TreeView.Items.AddChildObject(Node, ACaption, PData)
else NewNode := TreeView.Items.AddObject(Node, ACaption, PData);
NewNode.ImageIndex := 1;
NewNode.SelectedIndex := 2;
end;
except
Result := False;
end;
end;
B:///////
function TTreeUtils.ModifyNodeCaption(NewCaption: string;
Node: TTreeNode): boolean;
begin
sqlStr := 'Update ' + TableName + ' set ' + FieldCaption + '="' + NewCaption + '" where '
+ FieldIndex + ' = ' + IntToStr(PNodeData(Node.Data)^.Index);
if execSQL(sqlStr, errStr) then
begin
Node.Text := NewCaption;
PNodeData(Node.Data)^.Caption := NewCaption;
end;
end;
以上是以ACCESS为数据库时的语句,现换成SQL数据就出错,如何修改
------解决思路----------------------
Access 数据库能用的,MSSQL 数据库应该也可以用額。
两个数据库中的表是不是一样的?包括主键。
將最后执行出错的SQL语句帖出来額。