Yorumları: 12
Konuları: 5
Kayıt Tarihi: 29-09-2023
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 18 Başlangıç
Merhaba, iyi forumlar. Delphi Vcl'de bir cxChecklistbox içine eklediğim itemlerden seçili olanları jsonobject içerisinde bool olarak tutup veritabanına kaydediyorum. Ben veritabanıma sadece key değerim gelsin istiyorum. Yani sadece Items.Name'i kaydetmek istiyorum.
Örnek kayıt : {"KUMAŞ":true,"İPLİK":true}
Benim istediğim kayıt : {"KUMAŞ","İPLİK"}
Böyle bir şey mümkün mü? Yardımcı olursanız çok sevinirim. Teşekkür ederim şimdiden
procedure Ttest.btnKaydetClick(Sender: TObject);
var
JsonObject: TJSONObject;
JsonObject2: TJSONObject;
JsonArray: TJsonArray;
JsonItem: TJSONBool;
i: Integer;
JsonStr: string;
begin
JsonObject := TJSONObject.Create;
//obje>array>obje
try
for i := 0 to clbTurler.Items.Count - 1 do
begin
if clbTurler.Items[i].Checked then
begin
JsonObject.AddPair((clbTurler.Items[i].Text), TJSONTrue.Create);
JsonArray.Add(JsonObject);
end;
end;
JsonStr := JsonObject.ToString;
Memo.Lines.Text := JsonStr;
qryGenel.SQL.Text := 'Insert Into testCheckLists (Deger) values (:Deger)';
qryGenel.Parameters.ParamByName('Deger').Value := JsonStr; // JsonStr UnicodeString olarak saklanıyor
qryGenel.ExecSQL;
finally
JsonObject.Free;
end;
end;
Yorumları: 766
Konuları: 39
Kayıt Tarihi: 11-11-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.757 Uzman
(02-11-2023, Saat: 10:12)kajmerantime Adlı Kullanıcıdan Alıntı: Merhaba, iyi forumlar. Delphi Vcl'de bir cxChecklistbox içine eklediğim itemlerden seçili olanları jsonobject içerisinde bool olarak tutup veritabanına kaydediyorum. Ben veritabanıma sadece key değerim gelsin istiyorum. Yani sadece Items.Name'i kaydetmek istiyorum.
Örnek kayıt : {"KUMAŞ":true,"İPLİK":true}
Benim istediğim kayıt : {"KUMAŞ","İPLİK"}
Böyle bir şey mümkün mü? Yardımcı olursanız çok sevinirim. Teşekkür ederim şimdiden
procedure Ttest.btnKaydetClick(Sender: TObject);
var
JsonObject: TJSONObject;
JsonObject2: TJSONObject;
JsonArray: TJsonArray;
JsonItem: TJSONBool;
i: Integer;
JsonStr: string;
begin
JsonObject := TJSONObject.Create;
//obje>array>obje
try
for i := 0 to clbTurler.Items.Count - 1 do
begin
if clbTurler.Items[i].Checked then
begin
JsonObject.AddPair((clbTurler.Items[i].Text), TJSONTrue.Create);
JsonArray.Add(JsonObject);
end;
end;
JsonStr := JsonObject.ToString;
Memo.Lines.Text := JsonStr;
qryGenel.SQL.Text := 'Insert Into testCheckLists (Deger) values (:Deger)';
qryGenel.Parameters.ParamByName('Deger').Value := JsonStr; // JsonStr UnicodeString olarak saklanıyor
qryGenel.ExecSQL;
finally
JsonObject.Free;
end;
end;
Merhabalar,
Hangi veri tabanı kullandığınızı bilmiyorum ama, MySQL 8 ile birlikte JSON desteği mevcut.
https://dev.mysql.com/doc/refman/8.0/en/json.html
Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Yorumları: 75
Konuları: 6
Kayıt Tarihi: 08-01-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 182 Başlangıç
02-11-2023, Saat: 13:23
(Son Düzenleme: 02-11-2023, Saat: 13:24, Düzenleyen: ahmet6513.)
(02-11-2023, Saat: 10:12)kajmerantime Adlı Kullanıcıdan Alıntı: Merhaba, iyi forumlar. Delphi Vcl'de bir cxChecklistbox içine eklediğim itemlerden seçili olanları jsonobject içerisinde bool olarak tutup veritabanına kaydediyorum. Ben veritabanıma sadece key değerim gelsin istiyorum. Yani sadece Items.Name'i kaydetmek istiyorum.
Örnek kayıt : {"KUMAŞ":true,"İPLİK":true}
Benim istediğim kayıt : {"KUMAŞ","İPLİK"}
Böyle bir şey mümkün mü? Yardımcı olursanız çok sevinirim. Teşekkür ederim şimdiden
procedure Ttest.btnKaydetClick(Sender: TObject);
var
JsonObject: TJSONObject;
JsonObject2: TJSONObject;
JsonArray: TJsonArray;
JsonItem: TJSONBool;
i: Integer;
JsonStr: string;
begin
JsonObject := TJSONObject.Create;
//obje>array>obje
try
for i := 0 to clbTurler.Items.Count - 1 do
begin
if clbTurler.Items[i].Checked then
begin
JsonObject.AddPair((clbTurler.Items[i].Text), TJSONTrue.Create);
JsonArray.Add(JsonObject);
end;
end;
JsonStr := JsonObject.ToString;
Memo.Lines.Text := JsonStr;
qryGenel.SQL.Text := 'Insert Into testCheckLists (Deger) values (:Deger)';
qryGenel.Parameters.ParamByName('Deger').Value := JsonStr; // JsonStr UnicodeString olarak saklanıyor
qryGenel.ExecSQL;
finally
JsonObject.Free;
end;
end;
daha detaylısı vardır belki ama ilk aklıma gelen replace :
Memo.lines.text := StringReplace(Memo.lines.text,':true',[RfReplaceALL]);
Memo.Lines.Text := StringReplace(Memo.Lines.Text,':false',[RfReplaceALL]);
gibisinden çoğaltabilirsin
Yorumları: 751
Konuları: 18
Kayıt Tarihi: 22-07-2016
Aktif Kullandığınız Delphi Sürümü:
- Delphi 12
- Delphi 11
- Delphi 10.4
- Delphi 10.3
- Delphi 10.2
- Delphi 10.1
- Delphi 10
Rep Puanı: 3.982 Uzman
Bilmem anlatabildim mi?
Begin : = end / 2;
Yorumları: 766
Konuları: 39
Kayıt Tarihi: 11-11-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.757 Uzman
(02-11-2023, Saat: 10:12)kajmerantime Adlı Kullanıcıdan Alıntı: Merhaba, iyi forumlar. Delphi Vcl'de bir cxChecklistbox içine eklediğim itemlerden seçili olanları jsonobject içerisinde bool olarak tutup veritabanına kaydediyorum. Ben veritabanıma sadece key değerim gelsin istiyorum. Yani sadece Items.Name'i kaydetmek istiyorum.
Örnek kayıt : {"KUMAŞ":true,"İPLİK":true}
Benim istediğim kayıt : {"KUMAŞ","İPLİK"}
Böyle bir şey mümkün mü? Yardımcı olursanız çok sevinirim. Teşekkür ederim şimdiden
procedure Ttest.btnKaydetClick(Sender: TObject);
var
JsonObject: TJSONObject;
JsonObject2: TJSONObject;
JsonArray: TJsonArray;
JsonItem: TJSONBool;
i: Integer;
JsonStr: string;
begin
JsonObject := TJSONObject.Create;
//obje>array>obje
try
for i := 0 to clbTurler.Items.Count - 1 do
begin
if clbTurler.Items[i].Checked then
begin
JsonObject.AddPair((clbTurler.Items[i].Text), TJSONTrue.Create);
JsonArray.Add(JsonObject);
end;
end;
JsonStr := JsonObject.ToString;
Memo.Lines.Text := JsonStr;
qryGenel.SQL.Text := 'Insert Into testCheckLists (Deger) values (:Deger)';
qryGenel.Parameters.ParamByName('Deger').Value := JsonStr; // JsonStr UnicodeString olarak saklanıyor
qryGenel.ExecSQL;
finally
JsonObject.Free;
end;
end;
Merhabalar,
Gibi bir yapı ile...
{
"malzemeler": [
{
"malzeme_adi": "KUMAŞ",
"durum": 0
},
{
"malzeme_adi": "İPLİK",
"durum": 0
}
]
}
Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Yorumları: 751
Konuları: 18
Kayıt Tarihi: 22-07-2016
Aktif Kullandığınız Delphi Sürümü:
- Delphi 12
- Delphi 11
- Delphi 10.4
- Delphi 10.3
- Delphi 10.2
- Delphi 10.1
- Delphi 10
Rep Puanı: 3.982 Uzman
02-11-2023, Saat: 17:58
(Son Düzenleme: 02-11-2023, Saat: 18:00, Düzenleyen: RAD Coder.)
Şöyle de olabilir.
{
"secili": ["KUMAŞ", "İPLİK"]
}
Yada
["KUMAŞ", "İPLİK"]
Begin : = end / 2;
Yorumları: 12
Konuları: 5
Kayıt Tarihi: 29-09-2023
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 18 Başlangıç
03-11-2023, Saat: 15:05
(Son Düzenleme: 03-11-2023, Saat: 15:07, Düzenleyen: kajmerantime.)
(02-11-2023, Saat: 17:26)hi_selamlar Adlı Kullanıcıdan Alıntı: (02-11-2023, Saat: 10:12)kajmerantime Adlı Kullanıcıdan Alıntı: Merhaba, iyi forumlar. Delphi Vcl'de bir cxChecklistbox içine eklediğim itemlerden seçili olanları jsonobject içerisinde bool olarak tutup veritabanına kaydediyorum. Ben veritabanıma sadece key değerim gelsin istiyorum. Yani sadece Items.Name'i kaydetmek istiyorum.
Örnek kayıt : {"KUMAŞ":true,"İPLİK":true}
Benim istediğim kayıt : {"KUMAŞ","İPLİK"}
Böyle bir şey mümkün mü? Yardımcı olursanız çok sevinirim. Teşekkür ederim şimdiden
procedure Ttest.btnKaydetClick(Sender: TObject);
var
JsonObject: TJSONObject;
JsonObject2: TJSONObject;
JsonArray: TJsonArray;
JsonItem: TJSONBool;
i: Integer;
JsonStr: string;
begin
JsonObject := TJSONObject.Create;
//obje>array>obje
try
for i := 0 to clbTurler.Items.Count - 1 do
begin
if clbTurler.Items[i].Checked then
begin
JsonObject.AddPair((clbTurler.Items[i].Text), TJSONTrue.Create);
JsonArray.Add(JsonObject);
end;
end;
JsonStr := JsonObject.ToString;
Memo.Lines.Text := JsonStr;
qryGenel.SQL.Text := 'Insert Into testCheckLists (Deger) values (:Deger)';
qryGenel.Parameters.ParamByName('Deger').Value := JsonStr; // JsonStr UnicodeString olarak saklanıyor
qryGenel.ExecSQL;
finally
JsonObject.Free;
end;
end;
Merhabalar,
Gibi bir yapı ile...
{
"malzemeler": [
{
"malzeme_adi": "KUMAŞ",
"durum": 0
},
{
"malzeme_adi": "İPLİK",
"durum": 0
}
]
}
Kolay gelsin.
procedure Ttest.btnKaydetClick(Sender: TObject);
var
JsonObject: TJSONObject;
JsonArray: TJsonArray;
i: Integer;
JsonStr: string;
JsonKeys: TStringList;
begin
JsonObject := TJSONObject.Create;
JsonKeys := TStringlist.Create;
JsonArray := TJsonArray.Create;
try
for i := 0 to clbTurler.Items.Count - 1 do
begin
if clbTurler.Items[i].Checked then
begin
JsonObject.AddPair((clbTurler.Items[i].Text), TJSONTrue.Create);
JsonArray.Add(clbTurler.Items[i].Text);
JsonKeys.Add(clbTurler.Items[i].Text);
end;
end;
JsonStr := JsonArray.ToString;
Memo.Lines.Text := JsonStr;
// JSON veriyi doğrudan UnicodeString'e dönüştür
qryGenel.SQL.Text := 'Insert Into testCheckLists (Deger) values (:Deger)';
qryGenel.Parameters.ParamByName('Deger').Value := JsonStr; // JsonStr UnicodeString olarak saklanıyor
qryGenel.ExecSQL;
finally
JsonObject.Free;
end;
end;
İlgilenen arkadaşlar için şu şekilde yaptım.
Örnek veritabanı kayıtı şu şekilde: ["KUMAŞ","İPLİK"]
Tekrardan teşekkürlerrr.
|