加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

利用Jsonarray拼接sql

发布时间:2020-12-16 19:09:43 所属栏目:百科 来源:网络整理
导读:function getjsontoWhereSql(const ajsonarray: TJSONArray): string; var i: Integer; ajsonobject: TJSONObject; afieldname,afieldvalue:string; sqlwherestring:string; afieldoperator:string; begin sqlwherestring := ' '; for i := 0 to ajsonarray.

function getjsontoWhereSql(const ajsonarray: TJSONArray): string;
var
i: Integer;
ajsonobject: TJSONObject;
afieldname,afieldvalue:string;
sqlwherestring:string;
afieldoperator:string;
begin
sqlwherestring := ' ';
for i := 0 to ajsonarray.Size - 1 do
begin
ajsonobject := ajsonarray.Get(i) as TJSONObject;
afieldname := ajsonobject.Pairs[0].JsonString.ToString;
afieldname := ReplaceStr(afieldname,'"','');
afieldvalue := ajsonobject.Pairs[0].JsonValue.Value;
afieldoperator := ajsonobject.Pairs[1].JsonValue.Value;
sqlwherestring := sqlwherestring + ' ' + afieldname + ' ' + afieldoperator +
' ' + QuotedStr(afieldvalue) + ' and ';
end;
Result := ' where ' + LeftStr(sqlwherestring,
Length(sqlwherestring) - 5);
end;


///////////////

function getjsontoInsertSql(const ajsonarray:TJSONArray; tablename: string): string;
var
i,j: Integer;
ajsonobject: TJSONObject;
sqlstring:string;
afieldname,afieldvalue:string;
begin
sqlstring := '';
for i := 0 to ajsonarray.Size - 1 do
begin
sqlstring := sqlstring + ' insert into ' + tablename + '(';
ajsonobject := ajsonarray.Get(i) as TJSONObject;
for j := 0 to ajsonobject.Size - 1 do
begin
afieldname := ajsonobject.Pairs[j].JsonString.ToString;
sqlstring := sqlstring + ReplaceStr(afieldname,'') + ',';
end;
sqlstring := LeftStr(sqlstring,Length(sqlstring) - 1);
sqlstring := sqlstring + ')values(';
for j := 0 to ajsonobject.Size - 1 do
begin
afieldvalue := ajsonobject.Pairs[j].JsonValue.Value;
sqlstring := sqlstring + QuotedStr(afieldvalue) + ',Length(sqlstring) - 1);
sqlstring := sqlstring + ')';
end;
Result := sqlstring;
end;


///////////

function TForm1.getjsontoSelectSql(const ajsonwherearray: TJSONArray;
tablename: string;const theSql:string): string;
var
sqlwherestring:string;
begin
sqlwherestring := getjsontoWhereSql(ajsonwherearray);
result := thesql + ' from ' + tablename + sqlwherestring;
end;

/////////

function getjsontoUpdadteSql(const ajsonUpdatearray,ajsonWherearray: TJSONArray;
tablename: string): string;
var
i,afieldvalue:string;
setvaluesql,sqlwherestring:string;
afieldoperator:string;
begin
sqlstring := '';
for i := 0 to ajsonUpdatearray.Size - 1 do
begin
sqlstring := sqlstring + ' update ' + tablename + ' set ';
ajsonobject := ajsonUpdatearray.Get(i) as TJSONObject;
setvaluesql := '';
for j := 0 to ajsonobject.Size - 1 do
begin
afieldname := ajsonobject.Pairs[j].JsonString.ToString;
afieldname := ReplaceStr(afieldname,'');
afieldvalue := ajsonobject.Pairs[j].JsonValue.Value;
setvaluesql := setvaluesql + afieldname + ' = ' + QuotedStr(afieldvalue) + ',';
end;
setvaluesql := LeftStr(setvaluesql,Length(setvaluesql) - 1);
//////
sqlwherestring := getjsontoWhereSql(ajsonWherearray);
sqlstring := sqlstring + setvaluesql + sqlwherestring;
end;
Result := sqlstring;
end;

////////////////

function getjsontoDeleteSql(const ajsonWherearray: TJSONArray; tablename: string): string;
var
i: Integer;
ajsonobject: TJSONObject;
sqlstring:string;
afieldname,afieldvalue:string;
sqlwherestring:string;
afieldoperator:string;
begin
sqlwherestring := ' ';
for i := 0 to ajsonWherearray.Size - 1 do
begin
ajsonobject := ajsonWherearray.Get(i) as TJSONObject;
afieldname := ajsonobject.Pairs[0].JsonString.ToString;
afieldname := ReplaceStr(afieldname,'');
afieldvalue := ajsonobject.Pairs[0].JsonValue.Value;
afieldoperator := ajsonobject.Pairs[1].JsonValue.Value;
sqlwherestring := sqlwherestring + ' ' + afieldname + ' ' + afieldoperator +
' ' + QuotedStr(afieldvalue) + ' and ';
end;
sqlwherestring := ' where ' + LeftStr(sqlwherestring,Length(sqlwherestring) - 5);
sqlstring := ' delete from ' + tablename + sqlwherestring;
Result := sqlstring;
end;


////////生成Jsonarray

procedure TForm1.Button1Click(Sender: TObject);var i: Integer; JSONCars: TJSONArray; Car,Price: TJSONObject;begin JSONCars := TJSONArray.Create; try for i := low(Cars) to high(Cars) do begin Car := TJSONObject.Create; JSONCars.AddElement(Car); Car.AddPair('manufacturer',Cars[i][TCarInfo.Manufacturer]); Car.AddPair('name',Cars[i][TCarInfo.Name]); Price := TJSONObject.Create; Car.AddPair('price',Cars[i][TCarInfo.Name]); // Price.AddPair('value',TJSONNumber.Create(Cars[i][TCarInfo.Price].ToInteger)); // Price.AddPair('currency',Cars[i][TCarInfo.Currency]); end; JSON := JSONCars.ToString; memo3.Text := json; finally JSONCars.Free; end;end;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读