<?xml version="1.0" encoding="iso-8859-9" ?>
<?xml-stylesheet type="text/xsl" href="RSS_xslt_style.asp" version="1.0" ?>
<rss version="2.0" xmlns:WebWizForums="https://syndication.webwiz.net/rss_namespace/">
 <channel>
  <title>Clomosy | Forum : MQTT ile giriş-çıkış veri gönderimi hatası</title>
  <link>https://forum.clomosy.com.tr/</link>
  <description><![CDATA[XML içerik linki; Clomosy | Forum : Genel &#304;&#351;lemler : MQTT ile giriş-çıkış veri gönderimi hatası]]></description>
  <copyright>Copyright (c) 2006-2013 Web Wiz Forums - All Rights Reserved.</copyright>
  <pubDate>Mon, 04 May 2026 14:37:20 +0000</pubDate>
  <lastBuildDate>Fri, 25 Jul 2025 11:56:14 +0000</lastBuildDate>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Web Wiz Forums 12.07</generator>
  <ttl>360</ttl>
  <WebWizForums:feedURL>https://forum.clomosy.com.tr/RSS_post_feed.asp?TID=1093</WebWizForums:feedURL>
  <image>
   <title><![CDATA[Clomosy | Forum]]></title>
   <url>https://forum.clomosy.com.tr/forum_images/logo.png</url>
   <link>https://forum.clomosy.com.tr/</link>
  </image>
  <item>
   <title><![CDATA[MQTT ile giriş-çıkış veri gönderimi hatası : mesajlarda ID bazl&#305; e&#351;le&#351;me yerineuser_id...]]></title>
   <link>https://forum.clomosy.com.tr/forum_posts.asp?TID=1093&amp;PID=2366#2366</link>
   <description>
    <![CDATA[<strong>Yazar:</strong> <a href="https://forum.clomosy.com.tr/member_profile.asp?PF=257">Emr.Erkmn</a><br /><strong>Konu:</strong> 1093<br /><strong>Gönderim Zamanı:</strong> 25&nbsp;Temmuz&nbsp;2025 Saat 11:56<br /><br />mesajlarda <span -start="880" -end="900">ID bazlı eşleşme</span>&nbsp; yerine&nbsp;&nbsp;<span -start="927" -end="940"><code -start="929" -end="938" style="">user_id</code></span> kullanılarak kullanıcı eşlemesi sağlar mısın?<br><br>]]>
   </description>
   <pubDate>Fri, 25 Jul 2025 11:56:14 +0000</pubDate>
   <guid isPermaLink="true">https://forum.clomosy.com.tr/forum_posts.asp?TID=1093&amp;PID=2366#2366</guid>
  </item> 
  <item>
   <title><![CDATA[MQTT ile giriş-çıkış veri gönderimi hatası : uygulamamda register i&#351;lemi ba&#351;ar&#305;l&#305;...]]></title>
   <link>https://forum.clomosy.com.tr/forum_posts.asp?TID=1093&amp;PID=2226#2226</link>
   <description>
    <![CDATA[<strong>Yazar:</strong> <a href="https://forum.clomosy.com.tr/member_profile.asp?PF=307">Mahmutdmr</a><br /><strong>Konu:</strong> 1093<br /><strong>Gönderim Zamanı:</strong> 16&nbsp;Temmuz&nbsp;2025 Saat 13:56<br /><br />uygulamamda register işlemi başarılı bir şekilde gerçekleşirken, giriş çıkış işlemlerim maalesef ya yanlış kayıt ediliyor ya da hiç kayıt göstermiyor ilk olarak atacağım kod uAnaEkran&nbsp; burada mesajların dinlenip veri tabanına kayıt işlemi gerçekleştiriliyor.<br>ikinci atcağım kısım ise uQrOkuyucu unitim bu formda da mesaj gönderilen kısım ve işlem gerçekleştirilen cihazın veri tabanına kayıt işlemi gerçekleştirir.&nbsp;<br><br>/* ANA EKRAN KOD YAPIM*/<br><br><div>var</div><div>&nbsp; anaEkranForm: TclForm;</div><div>&nbsp; pnlContainer: TclProPanel;</div><div>&nbsp; lblWelcome: TclProLabel;</div><div>&nbsp; btnLogin, btnRegister, btnMembers, btnQrOkuyucu: TclProButton;</div><div>&nbsp; MQTT1: TclMQTT;</div><div>&nbsp; gelenMesaj: string;</div><div>&nbsp; action, table, id, user_id, checkin_time, checkout_time, kullanici_adi, email, password: string;</div><div>&nbsp; sql: string;</div><div>&nbsp; mesaj: string;</div><div>&nbsp; checkin_location, checkout_location: string;</div><div>&nbsp;&nbsp;</div><div>void ParseAndApplyMQTTMessage</div><div>{</div><div>&nbsp; ShowMessage('GELEN MQTT MESAJI: ' + gelenMesaj);</div><div><br></div><div>&nbsp; action = Clomosy.CLParseJSON(gelenMesaj, 'action');</div><div>&nbsp; table&nbsp; = Clomosy.CLParseJSON(gelenMesaj, 'table');</div><div><br></div><div>&nbsp; if table == 'users'</div><div>&nbsp; {</div><div>&nbsp; &nbsp; kullanici_adi = Clomosy.CLParseJSON(gelenMesaj, 'kullanici_adi');</div><div>&nbsp; &nbsp; email&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= Clomosy.CLParseJSON(gelenMesaj, 'email');</div><div>&nbsp; &nbsp; password&nbsp; &nbsp; &nbsp; = Clomosy.CLParseJSON(gelenMesaj, 'password');</div><div><br></div><div>&nbsp; &nbsp; if action == 'insert'</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; sql = 'INSERT INTO users (kullanici_adi, email, password) VALUES (' +</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; QuotedStr(kullanici_adi) + ', ' + QuotedStr(email) + ', ' + QuotedStr(password) + ')';</div><div>&nbsp; &nbsp; &nbsp; Clomosy.DBSQLiteQuery.Sql.Text = sql;</div><div>&nbsp; &nbsp; &nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div>&nbsp; &nbsp; &nbsp; ShowMessage('&#091;MQTT&#093; Kullanıcı eklendi: ' + kullanici_adi + ' / ' + email);</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; else if action == 'update'</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; sql = 'UPDATE users SET password = ' + QuotedStr(password) +</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ' WHERE email = ' + QuotedStr(email);</div><div>&nbsp; &nbsp; &nbsp; Clomosy.DBSQLiteQuery.Sql.Text = sql;</div><div>&nbsp; &nbsp; &nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div>&nbsp; &nbsp; &nbsp; ShowMessage('&#091;MQTT&#093; Şifre güncellendi: ' + email);</div><div>&nbsp; &nbsp; }</div><div>&nbsp; }</div><div>&nbsp; else if table == 'checkins'</div><div>&nbsp; {</div><div>&nbsp; &nbsp; user_id&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= '';</div><div>&nbsp; &nbsp; checkin_time&nbsp; &nbsp; &nbsp; = '';</div><div>&nbsp; &nbsp; checkout_time&nbsp; &nbsp; &nbsp;= '';</div><div>&nbsp; &nbsp; checkin_location&nbsp; = '';</div><div>&nbsp; &nbsp; checkout_location = '';</div><div><br></div><div>&nbsp; &nbsp; if Pos('"user_id"', gelenMesaj) &gt; 0</div><div>&nbsp; &nbsp; &nbsp; user_id = Clomosy.CLParseJSON(gelenMesaj, 'user_id');</div><div>&nbsp; &nbsp; if Pos('"checkin_time"', gelenMesaj) &gt; 0</div><div>&nbsp; &nbsp; &nbsp; checkin_time = Clomosy.CLParseJSON(gelenMesaj, 'checkin_time');</div><div>&nbsp; &nbsp; if Pos('"checkout_time"', gelenMesaj) &gt; 0</div><div>&nbsp; &nbsp; &nbsp; checkout_time = Clomosy.CLParseJSON(gelenMesaj, 'checkout_time');</div><div>&nbsp; &nbsp; if Pos('"checkin_location"', gelenMesaj) &gt; 0</div><div>&nbsp; &nbsp; &nbsp; checkin_location = Clomosy.CLParseJSON(gelenMesaj, 'checkin_location');</div><div>&nbsp; &nbsp; if Pos('"checkout_location"', gelenMesaj) &gt; 0</div><div>&nbsp; &nbsp; &nbsp; checkout_location = Clomosy.CLParseJSON(gelenMesaj, 'checkout_location');</div><div><br></div><div>&nbsp; &nbsp; if action == 'insert'</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; sql = 'INSERT INTO checkins (user_id, checkin_time, checkin_location) VALUES (' +</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; QuotedStr(user_id) + ', ' + QuotedStr(checkin_time) + ', ' + QuotedStr(checkin_location) + ')';</div><div>&nbsp; &nbsp; &nbsp; Clomosy.DBSQLiteQuery.Sql.Text = sql;</div><div>&nbsp; &nbsp; &nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; else if action == 'update'</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; sql = 'UPDATE checkins SET checkout_time = ' + QuotedStr(checkout_time) +</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ', checkout_location = ' + QuotedStr(checkout_location) +</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ' WHERE user_id = ' + QuotedStr(user_id) +</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ' AND checkin_time = ' + QuotedStr(checkin_time) +</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ' AND checkin_location = ' + QuotedStr(checkin_location) +</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ' AND (checkout_time IS NULL OR checkout_time = '''')';</div><div>&nbsp; &nbsp; &nbsp; Clomosy.DBSQLiteQuery.Sql.Text = sql;</div><div>&nbsp; &nbsp; &nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; else if action == 'delete'</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; if Pos('"id"', gelenMesaj) &gt; 0</div><div>&nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; id = Clomosy.CLParseJSON(gelenMesaj, 'id');</div><div>&nbsp; &nbsp; &nbsp; &nbsp; sql = 'DELETE FROM checkins WHERE id = ' + id;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; Clomosy.DBSQLiteQuery.Sql.Text = sql;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div>&nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; }</div><div>&nbsp; }</div><div>}</div><div><br></div><div>void OnLoginClick;</div><div>{</div><div>&nbsp; Clomosy.RunUnit('uLogin');</div><div>}</div><div><br></div><div>void OnRegisterClick;</div><div>{</div><div>&nbsp; Clomosy.RunUnit('uRegister');</div><div>}</div><div><br></div><div>void OnMembersClick;</div><div>{</div><div>&nbsp; Clomosy.RunUnit('uAdminLog');</div><div>}</div><div><br></div><div>void OnQrOkuyucuClick;</div><div>{</div><div>&nbsp; if (Clomosy.PlatformIsMobile)</div><div>&nbsp; &nbsp; ShowMessage('Yalnızca sorumlu ekranda çıkar');</div><div>&nbsp; else</div><div>&nbsp; &nbsp; Clomosy.RunUnit('uQrKodu');</div><div>}</div><div><br></div><div>void OnMQTTPublishReceived</div><div>{</div><div>&nbsp; if (MQTT1.ReceivedAlright)</div><div>&nbsp; {</div><div>&nbsp; &nbsp; gelenMesaj = MQTT1.ReceivedMessage;</div><div>&nbsp; &nbsp; ParseAndApplyMQTTMessage;</div><div>&nbsp; }</div><div>}</div><div>{</div><div>&nbsp; anaEkranForm = TclForm.Create(Self);</div><div>&nbsp; anaEkranForm.ClSetCaption('Hoş Geldiniz');</div><div>&nbsp; anaEkranForm.SetFormColor('#e0f7fa', '#a8e063', clGVertical);</div><div><br></div><div><br></div><div>&nbsp; pnlContainer = anaEkranForm.AddNewProPanel(anaEkranForm, 'pnlContainer');</div><div>&nbsp; pnlContainer.Align = alCenter;</div><div>&nbsp; pnlContainer.Width = anaEkranForm.clWidth * 0.8;</div><div>&nbsp; pnlContainer.Height = anaEkranForm.clHeight * 0.6;</div><div>&nbsp; pnlContainer.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFFDD');</div><div>&nbsp; pnlContainer.clProSettings.BorderWidth = 0;</div><div>&nbsp; pnlContainer.clProSettings.RoundWidth = 30;</div><div>&nbsp; pnlContainer.clProSettings.RoundHeight = 30;</div><div>&nbsp; pnlContainer.SetclProSettings(pnlContainer.clProSettings);</div><div>&nbsp;&nbsp;</div><div><br></div><div>&nbsp; MQTT1 = anaEkranForm.AddNewMQTTConnection(pnlContainer,'MQTT1');</div><div>&nbsp; MQTT1.Channel = 'clomosy/qrTakip';</div><div>&nbsp; MQTT1.Connect;</div><div>&nbsp; anaEkranForm.AddNewEvent(MQTT1, tbeOnMQTTPublishReceived, 'OnMQTTPublishReceived');</div><div><br></div><div>&nbsp; lblWelcome = anaEkranForm.AddNewProLabel(pnlContainer, 'lblWelcome', 'Qr Giriş-Çıkış Takip Sistemi');</div><div>&nbsp; lblWelcome.Align = alTop;</div><div>&nbsp; lblWelcome.Height = 60;</div><div>&nbsp; lblWelcome.Margins.Top = 20;</div><div>&nbsp; clComponent.SetupComponent(lblWelcome, '{"TextSize":24,"TextColor":"#388e3c","TextBold":"yes","TextHorizontalAlign":"center"}');</div><div><br></div><div>&nbsp; btnLogin = anaEkranForm.AddNewProButton(pnlContainer, 'btnLogin', 'GİRİŞ YAP');</div><div>&nbsp; btnLogin.Align = alTop;</div><div>&nbsp; btnLogin.Height = 50;</div><div>&nbsp; btnLogin.Margins.Top = 30;</div><div>&nbsp; clComponent.SetupComponent(btnLogin, '{"BackgroundColor":"#ffffff","TextColor":"#43a047","BorderColor":"#43a047","BorderWidth":2,"RoundWidth":20,"RoundHeight":20,"TextSize":16}');</div><div>&nbsp; anaEkranForm.AddNewEvent(btnLogin, tbeOnClick, 'OnLoginClick');</div><div><br></div><div>&nbsp; btnRegister = anaEkranForm.AddNewProButton(pnlContainer, 'btnRegister', 'KAYIT OL');</div><div>&nbsp; btnRegister.Align = alTop;</div><div>&nbsp; btnRegister.Height = 50;</div><div>&nbsp; btnRegister.Margins.Top = 15;</div><div>&nbsp; clComponent.SetupComponent(btnRegister, '{"BackgroundColor":"#ffffff","TextColor":"#43a047","BorderColor":"#43a047","BorderWidth":2,"RoundWidth":20,"RoundHeight":20,"TextSize":16}');</div><div>&nbsp; anaEkranForm.AddNewEvent(btnRegister, tbeOnClick, 'OnRegisterClick');</div><div><br></div><div>&nbsp; btnQrOkuyucu = anaEkranForm.AddNewProButton(pnlContainer, 'btnQrOkuyucu', 'QR KODU');</div><div>&nbsp; btnQrOkuyucu.Align = alTop;</div><div>&nbsp; btnQrOkuyucu.Height = 50;</div><div>&nbsp; btnQrOkuyucu.Margins.Top = 15;</div><div>&nbsp; clComponent.SetupComponent(btnQrOkuyucu, '{"BackgroundColor":"#ffffff","TextColor":"#43a047","BorderColor":"#43a047","BorderWidth":2,"RoundWidth":20,"RoundHeight":20,"TextSize":16}');</div><div>&nbsp; anaEkranForm.AddNewEvent(btnQrOkuyucu, tbeOnClick, 'OnQrOkuyucuClick');</div><div><br></div><div>&nbsp; btnMembers = anaEkranForm.AddNewProButton(pnlContainer, 'btnMembers', 'Personeller');</div><div>&nbsp; btnMembers.Align = alBottom;</div><div>&nbsp; btnMembers.Height = 40;</div><div>&nbsp; btnMembers.Margins.Bottom = 20;</div><div>&nbsp; clComponent.SetupComponent(btnMembers, '{"BackgroundColor":"#ffffff","TextColor":"#43a047","BorderColor":"#43a047","BorderWidth":2,"RoundWidth":20,"RoundHeight":20,"TextSize":16}');</div><div>&nbsp; anaEkranForm.AddNewEvent(btnMembers, tbeOnClick, 'OnMembersClick');</div><div><br></div><div>&nbsp; anaEkranForm.Run;</div><div>}</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>/* QROKUYUCU KISMI GİRİŞ VE ÇIKIŞ İŞLEMLERİNİN YAPILDIĞI ALAN */</div><div><br></div><div><br></div><div><br></div><div><br></div><div><div>var</div><div>&nbsp; qrForm: TclForm;</div><div>&nbsp; pnlContainer: TclProPanel;</div><div>&nbsp; lblTitle: TclProLabel;</div><div>&nbsp; pnlGiris, pnlCikis: TclProPanel;</div><div>&nbsp; lblGiris, lblCikis: TclProLabel;</div><div>&nbsp; btnQrGiris, btnKonumGiris, btnGirisKaydet: TclProButton;</div><div>&nbsp; btnQrCikis, btnKonumCikis, btnCikisKaydet: TclProButton;</div><div>&nbsp; girisEdit, cikisEdit: TclProEdit;</div><div>&nbsp; konumGirisEdit, konumCikisEdit: TclProEdit;</div><div>&nbsp; aktifKullaniciId: Integer;</div><div>&nbsp; qrSaat: String;</div><div>&nbsp; jsonMesaj: String;</div><div>&nbsp; latitude, longitude: String;</div><div>&nbsp; konum : String;</div><div>&nbsp; checkinTimeFromDb, checkinLocFromDb: String;</div><div>&nbsp;&nbsp;</div><div>void KonumGirisClicked {</div><div>&nbsp; Clomosy.GetCurrentLocation;</div><div>&nbsp; latitude&nbsp; = clGetStringTo(Clomosy.LocationValue, '|');</div><div>&nbsp; longitude = clGetStringAfter(Clomosy.LocationValue, '|');</div><div>&nbsp; konumGirisEdit.Text = latitude + '|' + longitude;</div><div>}</div><div><br></div><div>void KonumCikisClicked {</div><div>&nbsp; Clomosy.GetCurrentLocation;</div><div>&nbsp; latitude&nbsp; = clGetStringTo(Clomosy.LocationValue, '|');</div><div>&nbsp; longitude = clGetStringAfter(Clomosy.LocationValue, '|');</div><div>&nbsp; konumCikisEdit.Text = latitude + '|' + longitude;</div><div>}</div><div><br></div><div>void GirisQrClicked {</div><div>&nbsp; qrForm.CallBarcodeReader(girisEdit);</div><div>}</div><div><br></div><div>void GirisKaydet {</div><div>&nbsp; aktifKullaniciId = Clomosy.GlobalVariableInteger;</div><div>&nbsp; qrSaat = girisEdit.Text;</div><div>&nbsp; konum = konumGirisEdit.Text;</div><div><br></div><div>&nbsp; if qrSaat == '' {</div><div>&nbsp; &nbsp; ShowMessage('QR kodu bilgisi alınmadı!');</div><div>&nbsp; &nbsp; Exit;</div><div>&nbsp; }</div><div>&nbsp; if konum == '' {</div><div>&nbsp; &nbsp; ShowMessage('Konum bilgisi alınmadı!');</div><div>&nbsp; &nbsp; Exit;</div><div>&nbsp; }</div><div><br></div><div>&nbsp; Clomosy.DBSQLiteQuery.SQL.Text =</div><div>&nbsp; &nbsp; 'SELECT id FROM checkins ' +</div><div>&nbsp; &nbsp; 'WHERE user_id = ' + IntToStr(aktifKullaniciId) +</div><div>&nbsp; &nbsp; ' AND (checkout_time IS NULL OR checkout_time = '''') ';</div><div>&nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div><br></div><div>&nbsp; if Clomosy.DBSQLiteQuery.Found {</div><div>&nbsp; &nbsp; ShowMessage('Daha önce yapılmış bir giriş var, çıkış yapılmadan tekrar giriş yapılamaz!');</div><div>&nbsp; &nbsp; Exit;</div><div>&nbsp; }</div><div><br></div><div>&nbsp; Clomosy.DBSQLiteQuery.SQL.Text =</div><div>&nbsp; &nbsp; 'INSERT INTO checkins (user_id, checkin_time, checkin_location) VALUES (' +</div><div>&nbsp; &nbsp; IntToStr(aktifKullaniciId) + ', ' + QuotedStr(qrSaat) + ', ' +</div><div>&nbsp; &nbsp; QuotedStr(konum) + ')';</div><div>&nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div><br></div><div>&nbsp; ShowMessage('Giriş ve konum başarıyla kaydedildi!');</div><div>&nbsp; girisEdit.Text = '';</div><div>&nbsp; konumGirisEdit.Text = '';</div><div><br></div><div>&nbsp; if (MQTT1.Connected) {</div><div>&nbsp; &nbsp; // MQTT mesajında user_id, checkin_time, checkin_location YOLLA</div><div>&nbsp; &nbsp; jsonMesaj = '{"action":"insert","table":"checkins",' +</div><div>&nbsp; &nbsp; &nbsp; '"user_id":"' + IntToStr(aktifKullaniciId) + '",' +</div><div>&nbsp; &nbsp; &nbsp; '"checkin_time":"' + qrSaat + '",' +</div><div>&nbsp; &nbsp; &nbsp; '"checkin_location":"' + konum + '"}';</div><div>&nbsp; &nbsp; MQTT1.Send(jsonMesaj);</div><div>&nbsp; }</div><div>}</div><div><br></div><div>void CikisQrClicked {</div><div>&nbsp; qrForm.CallBarcodeReader(cikisEdit);</div><div>}</div><div><br></div><div>void CikisKaydet {</div><div>&nbsp; aktifKullaniciId = Clomosy.GlobalVariableInteger;</div><div>&nbsp; qrSaat = cikisEdit.Text;</div><div>&nbsp; konum = konumCikisEdit.Text;</div><div><br></div><div>&nbsp; if qrSaat == '' {</div><div>&nbsp; &nbsp; ShowMessage('QR kodu bilgisi alınmadı!');</div><div>&nbsp; &nbsp; Exit;</div><div>&nbsp; }</div><div>&nbsp; if konum == '' {</div><div>&nbsp; &nbsp; ShowMessage('Konum bilgisi alınmadı!');</div><div>&nbsp; &nbsp; Exit;</div><div>&nbsp; }</div><div><br></div><div>&nbsp; // --- BURADA: Giriş kaydının checkin_time ve checkin_location değerlerini çekiyoruz</div><div>&nbsp; Clomosy.DBSQLiteQuery.SQL.Text =</div><div>&nbsp; &nbsp; 'SELECT checkin_time, checkin_location FROM checkins ' +</div><div>&nbsp; &nbsp; 'WHERE user_id = ' + IntToStr(aktifKullaniciId) +</div><div>&nbsp; &nbsp; ' AND (checkout_time IS NULL OR checkout_time = '''') ' +</div><div>&nbsp; &nbsp; 'ORDER BY checkin_time ASC LIMIT 1';</div><div>&nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div><br></div><div>&nbsp; if (not Clomosy.DBSQLiteQuery.Found) {</div><div>&nbsp; &nbsp; ShowMessage('Önce giriş yapılmamış ya da çıkış zaten kaydedilmiş!');</div><div>&nbsp; &nbsp; Exit;</div><div>&nbsp; }</div><div><br></div><div>&nbsp; // --- BURADA: Değişkenleri tanımla ve ata</div><div>&nbsp;&nbsp;</div><div>&nbsp; checkinTimeFromDb = Clomosy.DBSQLiteQuery.FieldByName('checkin_time').AsString;</div><div>&nbsp; checkinLocFromDb&nbsp; = Clomosy.DBSQLiteQuery.FieldByName('checkin_location').AsString;</div><div><br></div><div>&nbsp; // --- Kendi cihazında update işlemi</div><div>&nbsp; Clomosy.DBSQLiteQuery.SQL.Text =</div><div>&nbsp; &nbsp; 'UPDATE checkins SET checkout_time = ' + QuotedStr(qrSaat) +</div><div>&nbsp; &nbsp; ', checkout_location = ' + QuotedStr(konum) +</div><div>&nbsp; &nbsp; ' WHERE user_id = ' + IntToStr(aktifKullaniciId) +</div><div>&nbsp; &nbsp; ' AND checkin_time = ' + QuotedStr(checkinTimeFromDb) +</div><div>&nbsp; &nbsp; ' AND checkin_location = ' + QuotedStr(checkinLocFromDb) +</div><div>&nbsp; &nbsp; ' AND (checkout_time IS NULL OR checkout_time = '''')';</div><div>&nbsp; Clomosy.DBSQLiteQuery.OpenOrExecute;</div><div><br></div><div>&nbsp; ShowMessage('Çıkış ve konum başarıyla kaydedildi!');</div><div>&nbsp; cikisEdit.Text = '';</div><div>&nbsp; konumCikisEdit.Text = '';</div><div><br></div><div>&nbsp; if (MQTT1.Connected) {</div><div>&nbsp; &nbsp; jsonMesaj = '{"action":"update","table":"checkins",' +</div><div>&nbsp; &nbsp; &nbsp; '"user_id":"' + IntToStr(aktifKullaniciId) + '",' +</div><div>&nbsp; &nbsp; &nbsp; '"checkin_time":"' + checkinTimeFromDb + '",' +</div><div>&nbsp; &nbsp; &nbsp; '"checkin_location":"' + checkinLocFromDb + '",' +</div><div>&nbsp; &nbsp; &nbsp; '"checkout_time":"' + qrSaat + '",' +</div><div>&nbsp; &nbsp; &nbsp; '"checkout_location":"' + konum + '"}';</div><div>&nbsp; &nbsp; MQTT1.Send(jsonMesaj);</div><div>&nbsp; }</div><div>}</div><div>{</div><div>&nbsp; qrForm = TclForm.Create(Self);</div><div>&nbsp; qrForm.ClSetCaption('QR Giriş/Çıkış Takip');</div><div>&nbsp; qrForm.SetFormColor('#f7fafc', '#a8e063', clGVertical);</div><div><br></div><div>&nbsp; pnlContainer = qrForm.AddNewProPanel(qrForm, 'pnlContainer');</div><div>&nbsp; pnlContainer.Align = alClient;</div><div>&nbsp; pnlContainer.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');</div><div>&nbsp; pnlContainer.SetclProSettings(pnlContainer.clProSettings);</div><div><br></div><div>&nbsp; lblTitle = qrForm.AddNewProLabel(pnlContainer, 'lblTitle', 'QR GİRİŞ / ÇIKIŞ');</div><div>&nbsp; lblTitle.Align = alTop;</div><div>&nbsp; lblTitle.Height = 54;</div><div>&nbsp; lblTitle.Margins.Top = 10;</div><div>&nbsp; lblTitle.clProSettings.FontSize = 25;</div><div>&nbsp; lblTitle.clProSettings.FontColor = clAlphaColor.clHexToColor('#43a047');</div><div>&nbsp; lblTitle.clProSettings.FonthorzAlign = palCenter;</div><div>&nbsp; lblTitle.clProSettings.FontVertAlign = palCenter;</div><div>&nbsp; lblTitle.clProSettings.TextSettings.Font.Style = &#091;fsBold&#093;;</div><div>&nbsp; lblTitle.SetclProSettings(lblTitle.clProSettings);</div><div><br></div><div>&nbsp; pnlGiris = qrForm.AddNewProPanel(pnlContainer, 'pnlGiris');</div><div>&nbsp; pnlGiris.Align = alTop;</div><div>&nbsp; pnlGiris.Height = 220;</div><div>&nbsp; pnlGiris.Margins.Top = 14;</div><div>&nbsp; pnlGiris.Margins.Left = 14;</div><div>&nbsp; pnlGiris.Margins.Right = 14;</div><div>&nbsp; pnlGiris.Margins.Bottom = 0;</div><div>&nbsp; pnlGiris.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#e8f5e9');</div><div>&nbsp; pnlGiris.clProSettings.IsRound = True;</div><div>&nbsp; pnlGiris.clProSettings.RoundHeight = 16;</div><div>&nbsp; pnlGiris.clProSettings.RoundWidth = 16;</div><div>&nbsp; pnlGiris.SetclProSettings(pnlGiris.clProSettings);</div><div><br></div><div>&nbsp; lblGiris = qrForm.AddNewProLabel(pnlGiris, 'lblGiris', 'GİRİŞ');</div><div>&nbsp; lblGiris.Align = alTop;</div><div>&nbsp; lblGiris.Height = 30;</div><div>&nbsp; lblGiris.Margins.Top = 7;</div><div>&nbsp; lblGiris.clProSettings.FontSize = 17;</div><div>&nbsp; lblGiris.clProSettings.FontColor = clAlphaColor.clHexToColor('#388e3c');</div><div>&nbsp; lblGiris.clProSettings.FonthorzAlign = palCenter;</div><div>&nbsp; lblGiris.clProSettings.TextSettings.Font.Style = &#091;fsBold&#093;;</div><div>&nbsp; lblGiris.SetclProSettings(lblGiris.clProSettings);</div><div><br></div><div>&nbsp; btnQrGiris = qrForm.AddNewProButton(pnlGiris, 'btnQrGiris', 'QR OKUT');</div><div>&nbsp; btnQrGiris.Align = alTop;</div><div>&nbsp; btnQrGiris.Height = 40;</div><div>&nbsp; btnQrGiris.Margins.Top = 10;</div><div>&nbsp; btnQrGiris.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');</div><div>&nbsp; btnQrGiris.clProSettings.FontColor = clAlphaColor.clHexToColor('#43a047');</div><div>&nbsp; btnQrGiris.clProSettings.BorderColor = clAlphaColor.clHexToColor('#43a047');</div><div>&nbsp; btnQrGiris.clProSettings.BorderWidth = 2;</div><div>&nbsp; btnQrGiris.clProSettings.RoundWidth = 12;</div><div>&nbsp; btnQrGiris.clProSettings.RoundHeight = 12;</div><div>&nbsp; btnQrGiris.clProSettings.FontSize = 15;</div><div>&nbsp; btnQrGiris.clProSettings.IsRound = True;</div><div>&nbsp; btnQrGiris.clProSettings.IsFill = True;</div><div>&nbsp; btnQrGiris.clProSettings.TextSettings.Font.Style = &#091;fsBold&#093;;</div><div>&nbsp; btnQrGiris.SetclProSettings(btnQrGiris.clProSettings);</div><div>&nbsp; qrForm.AddNewEvent(btnQrGiris, tbeOnClick, 'GirisQrClicked');</div><div><br></div><div>&nbsp; girisEdit = qrForm.AddNewProEdit(pnlGiris, 'girisEdit', 'QR kodu...');</div><div>&nbsp; girisEdit.Align = alTop;</div><div>&nbsp; girisEdit.Height = 36;</div><div>&nbsp; girisEdit.Margins.Top = 7;</div><div>&nbsp; girisEdit.clProSettings.IsRound = True;</div><div>&nbsp; girisEdit.clProSettings.RoundHeight = 10;</div><div>&nbsp; girisEdit.clProSettings.RoundWidth = 10;</div><div>&nbsp; girisEdit.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#f8fafc');</div><div>&nbsp; girisEdit.clProSettings.BorderColor = clAlphaColor.clHexToColor('#43a047');&nbsp;</div><div>&nbsp; girisEdit.clProSettings.FontColor = clAlphaColor.clHexToColor('#388e3c');&nbsp;</div><div>&nbsp; girisEdit.clProSettings.FontSize = 14;</div><div>&nbsp; girisEdit.clProSettings.BorderWidth = 1;</div><div>&nbsp; girisEdit.clProSettings.IsFill = True;</div><div>&nbsp; girisEdit.ReadOnly = True;</div><div>&nbsp; girisEdit.SetclProSettings(girisEdit.clProSettings);</div><div><br></div><div>&nbsp; btnKonumGiris = qrForm.AddNewProButton(pnlGiris, 'btnKonumGiris', 'KONUMU AL');</div><div>&nbsp; btnKonumGiris.Align = alTop;</div><div>&nbsp; btnKonumGiris.Height = 36;</div><div>&nbsp; btnKonumGiris.Margins.Top = 6;</div><div>&nbsp; btnKonumGiris.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');</div><div>&nbsp; btnKonumGiris.clProSettings.FontColor = clAlphaColor.clHexToColor('#388e3c');</div><div>&nbsp; btnKonumGiris.clProSettings.BorderColor = clAlphaColor.clHexToColor('#388e3c');</div><div>&nbsp; btnKonumGiris.clProSettings.BorderWidth = 2;</div><div>&nbsp; btnKonumGiris.clProSettings.RoundWidth = 12;</div><div>&nbsp; btnKonumGiris.clProSettings.RoundHeight = 12;</div><div>&nbsp; btnKonumGiris.clProSettings.FontSize = 14;</div><div>&nbsp; btnKonumGiris.clProSettings.IsRound = True;</div><div>&nbsp; btnKonumGiris.clProSettings.IsFill = True;</div><div>&nbsp; btnKonumGiris.clProSettings.TextSettings.Font.Style = &#091;fsBold&#093;;</div><div>&nbsp; btnKonumGiris.SetclProSettings(btnKonumGiris.clProSettings);</div><div>&nbsp; qrForm.AddNewEvent(btnKonumGiris, tbeOnClick, 'KonumGirisClicked');</div><div><br></div><div>&nbsp; konumGirisEdit = qrForm.AddNewProEdit(pnlGiris, 'konumGirisEdit', 'Enlem | Boylam');</div><div>&nbsp; konumGirisEdit.Align = alTop;</div><div>&nbsp; konumGirisEdit.Height = 34;</div><div>&nbsp; konumGirisEdit.clProSettings.IsRound = True;</div><div>&nbsp; konumGirisEdit.clProSettings.RoundHeight = 10;</div><div>&nbsp; konumGirisEdit.clProSettings.RoundWidth = 10;</div><div>&nbsp; konumGirisEdit.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#f8fafc');</div><div>&nbsp; konumGirisEdit.clProSettings.BorderColor = clAlphaColor.clHexToColor('#388e3c');</div><div>&nbsp; konumGirisEdit.clProSettings.FontColor = clAlphaColor.clHexToColor('#388e3c');</div><div>&nbsp; konumGirisEdit.clProSettings.FontSize = 14;</div><div>&nbsp; konumGirisEdit.clProSettings.BorderWidth = 1;</div><div>&nbsp; konumGirisEdit.clProSettings.IsFill = True;</div><div>&nbsp; konumGirisEdit.ReadOnly = True;</div><div>&nbsp; konumGirisEdit.SetclProSettings(konumGirisEdit.clProSettings);</div><div><br></div><div>&nbsp; btnGirisKaydet = qrForm.AddNewProButton(pnlGiris, 'btnGirisKaydet', 'GİRİŞİ KAYDET');</div><div>&nbsp; btnGirisKaydet.Align = alTop;</div><div>&nbsp; btnGirisKaydet.Height = 38;</div><div>&nbsp; btnGirisKaydet.Margins.Top = 10;</div><div>&nbsp; btnGirisKaydet.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#43a047');</div><div>&nbsp; btnGirisKaydet.clProSettings.FontColor = clAlphaColor.clWhite;</div><div>&nbsp; btnGirisKaydet.clProSettings.BorderColor = clAlphaColor.clHexToColor('#388e3c');</div><div>&nbsp; btnGirisKaydet.clProSettings.BorderWidth = 2;</div><div>&nbsp; btnGirisKaydet.clProSettings.RoundWidth = 10;</div><div>&nbsp; btnGirisKaydet.clProSettings.RoundHeight = 10;</div><div>&nbsp; btnGirisKaydet.clProSettings.FontSize = 15;</div><div>&nbsp; btnGirisKaydet.clProSettings.IsRound = True;</div><div>&nbsp; btnGirisKaydet.clProSettings.IsFill = True;</div><div>&nbsp; btnGirisKaydet.clProSettings.TextSettings.Font.Style = &#091;fsBold&#093;;</div><div>&nbsp; btnGirisKaydet.SetclProSettings(btnGirisKaydet.clProSettings);</div><div>&nbsp; qrForm.AddNewEvent(btnGirisKaydet, tbeOnClick, 'GirisKaydet');</div><div><br></div><div>&nbsp; pnlCikis = qrForm.AddNewProPanel(pnlContainer, 'pnlCikis');</div><div>&nbsp; pnlCikis.Align = alTop;</div><div>&nbsp; pnlCikis.Height = 220;</div><div>&nbsp; pnlCikis.Margins.Top = 60;</div><div>&nbsp; pnlCikis.Margins.Left = 14;</div><div>&nbsp; pnlCikis.Margins.Right = 14;</div><div>&nbsp; pnlCikis.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#fffde7');</div><div>&nbsp; pnlCikis.clProSettings.IsRound = True;</div><div>&nbsp; pnlCikis.clProSettings.RoundHeight = 16;</div><div>&nbsp; pnlCikis.clProSettings.RoundWidth = 16;</div><div>&nbsp; pnlCikis.SetclProSettings(pnlCikis.clProSettings);</div><div><br></div><div>&nbsp; lblCikis = qrForm.AddNewProLabel(pnlCikis, 'lblCikis', 'ÇIKIŞ');</div><div>&nbsp; lblCikis.Align = alTop;</div><div>&nbsp; lblCikis.Height = 30;</div><div>&nbsp; lblCikis.Margins.Top = 7;</div><div>&nbsp; lblCikis.clProSettings.FontSize = 17;</div><div>&nbsp; lblCikis.clProSettings.FontColor = clAlphaColor.clHexToColor('#b71c1c');&nbsp;</div><div>&nbsp; lblCikis.clProSettings.FonthorzAlign = palCenter;</div><div>&nbsp; lblCikis.clProSettings.TextSettings.Font.Style = &#091;fsBold&#093;;</div><div>&nbsp; lblCikis.SetclProSettings(lblCikis.clProSettings);</div><div><br></div><div>&nbsp; btnQrCikis = qrForm.AddNewProButton(pnlCikis, 'btnQrCikis', 'QR OKUT');</div><div>&nbsp; btnQrCikis.Align = alTop;</div><div>&nbsp; btnQrCikis.Height = 40;</div><div>&nbsp; btnQrCikis.Margins.Top = 10;</div><div>&nbsp; btnQrCikis.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');</div><div>&nbsp; btnQrCikis.clProSettings.FontColor = clAlphaColor.clHexToColor('#b71c1c');</div><div>&nbsp; btnQrCikis.clProSettings.BorderColor = clAlphaColor.clHexToColor('#b71c1c');&nbsp;</div><div>&nbsp; btnQrCikis.clProSettings.BorderWidth = 2;</div><div>&nbsp; btnQrCikis.clProSettings.RoundWidth = 12;</div><div>&nbsp; btnQrCikis.clProSettings.RoundHeight = 12;</div><div>&nbsp; btnQrCikis.clProSettings.FontSize = 15;</div><div>&nbsp; btnQrCikis.clProSettings.IsRound = True;</div><div>&nbsp; btnQrCikis.clProSettings.IsFill = True;</div><div>&nbsp; btnQrCikis.clProSettings.TextSettings.Font.Style = &#091;fsBold&#093;;</div><div>&nbsp; btnQrCikis.SetclProSettings(btnQrCikis.clProSettings);</div><div>&nbsp; qrForm.AddNewEvent(btnQrCikis, tbeOnClick, 'CikisQrClicked');</div><div><br></div><div>&nbsp; cikisEdit = qrForm.AddNewProEdit(pnlCikis, 'cikisEdit', 'QR kodu...');</div><div>&nbsp; cikisEdit.Align = alTop;</div><div>&nbsp; cikisEdit.Height = 36;</div><div>&nbsp; cikisEdit.Margins.Top = 7;</div><div>&nbsp; cikisEdit.clProSettings.IsRound = True;</div><div>&nbsp; cikisEdit.clProSettings.RoundHeight = 10;</div><div>&nbsp; cikisEdit.clProSettings.RoundWidth = 10;</div><div>&nbsp; cikisEdit.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#f8fafc');</div><div>&nbsp; cikisEdit.clProSettings.BorderColor = clAlphaColor.clHexToColor('#b71c1c');&nbsp;</div><div>&nbsp; cikisEdit.clProSettings.FontColor = clAlphaColor.clHexToColor('#b71c1c');</div><div>&nbsp; cikisEdit.clProSettings.FontSize = 14;</div><div>&nbsp; cikisEdit.clProSettings.BorderWidth = 1;</div><div>&nbsp; cikisEdit.clProSettings.IsFill = True;</div><div>&nbsp; cikisEdit.ReadOnly = True;</div><div>&nbsp; cikisEdit.SetclProSettings(cikisEdit.clProSettings);</div><div><br></div><div>&nbsp; btnKonumCikis = qrForm.AddNewProButton(pnlCikis, 'btnKonumCikis', 'KONUMU AL');</div><div>&nbsp; btnKonumCikis.Align = alTop;</div><div>&nbsp; btnKonumCikis.Height = 36;</div><div>&nbsp; btnKonumCikis.Margins.Top = 6;</div><div>&nbsp; btnKonumCikis.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');</div><div>&nbsp; btnKonumCikis.clProSettings.FontColor = clAlphaColor.clHexToColor('#b71c1c');</div><div>&nbsp; btnKonumCikis.clProSettings.BorderColor = clAlphaColor.clHexToColor('#b71c1c');</div><div>&nbsp; btnKonumCikis.clProSettings.BorderWidth = 2;</div><div>&nbsp; btnKonumCikis.clProSettings.RoundWidth = 12;</div><div>&nbsp; btnKonumCikis.clProSettings.RoundHeight = 12;</div><div>&nbsp; btnKonumCikis.clProSettings.FontSize = 14;</div><div>&nbsp; btnKonumCikis.clProSettings.IsRound = True;</div><div>&nbsp; btnKonumCikis.clProSettings.IsFill = True;</div><div>&nbsp; btnKonumCikis.clProSettings.TextSettings.Font.Style = &#091;fsBold&#093;;</div><div>&nbsp; btnKonumCikis.SetclProSettings(btnKonumCikis.clProSettings);</div><div>&nbsp; qrForm.AddNewEvent(btnKonumCikis, tbeOnClick, 'KonumCikisClicked');</div><div><br></div><div>&nbsp; konumCikisEdit = qrForm.AddNewProEdit(pnlCikis, 'konumCikisEdit', 'Enlem | Boylam');</div><div>&nbsp; konumCikisEdit.Align = alTop;</div><div>&nbsp; konumCikisEdit.Height = 34;</div><div>&nbsp; konumCikisEdit.clProSettings.IsRound = True;</div><div>&nbsp; konumCikisEdit.clProSettings.RoundHeight = 10;</div><div>&nbsp; konumCikisEdit.clProSettings.RoundWidth = 10;</div><div>&nbsp; konumCikisEdit.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#f8fafc');</div><div>&nbsp; konumCikisEdit.clProSettings.BorderColor = clAlphaColor.clHexToColor('#b71c1c');</div><div>&nbsp; konumCikisEdit.clProSettings.FontColor = clAlphaColor.clHexToColor('#b71c1c');</div><div>&nbsp; konumCikisEdit.clProSettings.FontSize = 14;</div><div>&nbsp; konumCikisEdit.clProSettings.BorderWidth = 1;</div><div>&nbsp; konumCikisEdit.clProSettings.IsFill = True;</div><div>&nbsp; konumCikisEdit.ReadOnly = True;</div><div>&nbsp; konumCikisEdit.SetclProSettings(konumCikisEdit.clProSettings);</div><div><br></div><div>&nbsp; btnCikisKaydet = qrForm.AddNewProButton(pnlCikis, 'btnCikisKaydet', 'ÇIKIŞI KAYDET');</div><div>&nbsp; btnCikisKaydet.Align = alTop;</div><div>&nbsp; btnCikisKaydet.Height = 38;</div><div>&nbsp; btnCikisKaydet.Margins.Top = 10;</div><div>&nbsp; btnCikisKaydet.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#b71c1c');</div><div>&nbsp; btnCikisKaydet.clProSettings.FontColor = clAlphaColor.clWhite;</div><div>&nbsp; btnCikisKaydet.clProSettings.BorderColor = clAlphaColor.clHexToColor('#b71c1c');</div><div>&nbsp; btnCikisKaydet.clProSettings.BorderWidth = 2;</div><div>&nbsp; btnCikisKaydet.clProSettings.RoundWidth = 10;</div><div>&nbsp; btnCikisKaydet.clProSettings.RoundHeight = 10;</div><div>&nbsp; btnCikisKaydet.clProSettings.FontSize = 15;</div><div>&nbsp; btnCikisKaydet.clProSettings.IsRound = True;</div><div>&nbsp; btnCikisKaydet.clProSettings.IsFill = True;</div><div>&nbsp; btnCikisKaydet.clProSettings.TextSettings.Font.Style = &#091;fsBold&#093;;</div><div>&nbsp; btnCikisKaydet.SetclProSettings(btnCikisKaydet.clProSettings);</div><div>&nbsp; qrForm.AddNewEvent(btnCikisKaydet, tbeOnClick, 'CikisKaydet');</div><div><br></div><div>&nbsp; qrForm.Run;</div><div>}</div><div><br></div><div><br></div></div>]]>
   </description>
   <pubDate>Wed, 16 Jul 2025 13:56:31 +0000</pubDate>
   <guid isPermaLink="true">https://forum.clomosy.com.tr/forum_posts.asp?TID=1093&amp;PID=2226#2226</guid>
  </item> 
 </channel>
</rss>