<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[SQL-Abfrage funktioniert nicht! Bitte um Hilfe]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Problem: Ich habe eine Access-Datenbank mit 2 Tabellen. Dies ist verbunden mit meinen zwei Recordsets. Die Applikation ist gesplittet mit einem Splitterwnd. Die linke und rechte Seite ist jeweils für eine Tabelle zuständig.</p>
<p>So, wenn ich auf der linken Seite eine SQL-Abfrage ausführe, funktioniert das bestens. Wenn ich auf der rechten Seite eine ausführe hängt mir die MFC an meinen Abfragestring einfach noch was hinten an. Somit schlägt die Abfrage dann fehl.</p>
<p>Linke Seite die funktioniert:</p>
<pre><code class="language-cpp">void CMedienDBView::SQLAbfrage()
{
  m_pSet-&gt;Close();
  UpdateData(TRUE);
  CString sqlabfrage=&quot;&quot;;

  if(IsDlgButtonChecked(IDC_RADIOTITEL))
  {					
    sqlabfrage=&quot;SELECT * FROM [Objekt]WHERE &quot;[Titel] Like '%&quot;+m_Titel+&quot;%'&quot;;
    m_pSet-&gt;Open(CMedienDBSet::snapshot,sqlabfrage,CMedienDBSet::none);
  }
  if(IsDlgButtonChecked(IDC_RADIOSYSTEM))
  {						
    sqlabfrage=&quot;SELECT * FROM [Objekt] WHERE [System] LIKE '%&quot;+m_System+&quot;%'&quot;;
    m_pSet-&gt;Open(CMedienDBSet::snapshot,sqlabfrage,CMedienDBSet::none);
  }
  if(IsDlgButtonChecked(IDC_RADIOMTYP))
  {
    sqlabfrage=&quot;SELECT * FROM [Objekt] WHERE [Medientyp] LIKE '%&quot;+m_Mtyp+&quot;%'&quot;;
    m_pSet-&gt;Open(CMedienDBSet::snapshot,sqlabfrage,CMedienDBSet::none);
  }

  if(m_pSet-&gt;GetRecordCount()==0)
  {
    m_pSet-&gt;Close();
    AfxMessageBox(&quot;Es wurde kein Eintrag gefunden!&quot;,MB_OK | MB_ICONINFORMATION);
   m_pSet-&gt;Open(CMedienDBSet::snapshot,&quot;SELECT * FROM  Objekt]&quot;,CMedienDBSet::none);
  }

  m_pSet-&gt;Requery();
  ShowData();
  UpdateData(FALSE);
  m_iMerkerSuchen=0;
}
</code></pre>
<p>Rechte Seite funktioniert nicht:</p>
<pre><code class="language-cpp">void CMedienDBView2::SQLAbfrage()
{ 
  m_pSet2-&gt;Close();	
  UpdateData(TRUE);
  CString sqlabfrage=&quot;&quot;;	

if(IsDlgButtonChecked(IDC_RADIOVORNAME))
{				
    sqlabfrage=&quot;SELECT * FROM [Leiher] WHERE [Vorname] LIKE '%&quot;+m_Vorname+&quot;%'&quot;;
    m_pSet2-&gt;Open(MedienDBSet2::snapshot,sqlabfrage,MedienDBSet2::none);	
}
if(IsDlgButtonChecked(IDC_RADIONACHNAME))
{						
    sqlabfrage=&quot;SELECT * FROM [Leiher] WHERE [Nachname] LIKE '%&quot;+m_Nachname+&quot;%'&quot;;
    m_pSet2-&gt;Open(MedienDBSet2::snapshot,sqlabfrage,MedienDBSet2::none);	
}
if(IsDlgButtonChecked(IDC_RADIOTELEFON))
{
    sqlabfrage=&quot;SELECT * FROM [Leiher] WHERE [Telefonnummer] LIKE '%&quot;+m_Telefon+&quot;%'&quot;;
    m_pSet2-&gt;Open(MedienDBSet2::snapshot,sqlabfrage,MedienDBSet2::none);	
}
if(IsDlgButtonChecked(IDC_RADIODATUM))
{				
    sqlabfrage=&quot;SELECT * FROM [Leiher] WHERE [Datum] LIKE '%&quot;+m_Datum+&quot;%'&quot;;
    m_pSet2-&gt;Open(MedienDBSet2::snapshot,sqlabfrage,MedienDBSet2::none);
}
if(m_pSet2-&gt;GetRecordCount()==0)
{
    m_pSet2-&gt;Close();
    AfxMessageBox(&quot;Es wurde kein Eintrag gefunden!&quot;,MB_OK | MB_ICONINFORMATION);
    m_pSet2-&gt;Open(MedienDBSet2::snapshot,&quot;SELECT * FROM [Leiher]&quot;,MedienDBSet2::none);
}

m_pSet2-&gt;Requery();	
ShowData();	
UpdateData(FALSE);

m_iMerkerSuchen=0;
}
</code></pre>
<p>Auf der rechten Seite bekomme ich eine Fehlermeldung:<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> Syntaxfehler (fehlender Operator) in Abfrageausdruck '`Vorname` LIKE '%A%' WHERE Objektnummer = 1'</p>
<p>Das 'WHERE Objektnummer = 1' kann ich mir absolut nicht erklären woher er das bekommt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> Bin leider noch blutender Anfänger und kenne mich noch nicht so gut aus. Würde mich freuen wenn mir jemand helfen könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/53432/sql-abfrage-funktioniert-nicht-bitte-um-hilfe</link><generator>RSS for Node</generator><lastBuildDate>Mon, 01 Jun 2026 09:35:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/53432.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 29 Oct 2003 09:01:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SQL-Abfrage funktioniert nicht! Bitte um Hilfe on Wed, 29 Oct 2003 09:01:57 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Problem: Ich habe eine Access-Datenbank mit 2 Tabellen. Dies ist verbunden mit meinen zwei Recordsets. Die Applikation ist gesplittet mit einem Splitterwnd. Die linke und rechte Seite ist jeweils für eine Tabelle zuständig.</p>
<p>So, wenn ich auf der linken Seite eine SQL-Abfrage ausführe, funktioniert das bestens. Wenn ich auf der rechten Seite eine ausführe hängt mir die MFC an meinen Abfragestring einfach noch was hinten an. Somit schlägt die Abfrage dann fehl.</p>
<p>Linke Seite die funktioniert:</p>
<pre><code class="language-cpp">void CMedienDBView::SQLAbfrage()
{
  m_pSet-&gt;Close();
  UpdateData(TRUE);
  CString sqlabfrage=&quot;&quot;;

  if(IsDlgButtonChecked(IDC_RADIOTITEL))
  {					
    sqlabfrage=&quot;SELECT * FROM [Objekt]WHERE &quot;[Titel] Like '%&quot;+m_Titel+&quot;%'&quot;;
    m_pSet-&gt;Open(CMedienDBSet::snapshot,sqlabfrage,CMedienDBSet::none);
  }
  if(IsDlgButtonChecked(IDC_RADIOSYSTEM))
  {						
    sqlabfrage=&quot;SELECT * FROM [Objekt] WHERE [System] LIKE '%&quot;+m_System+&quot;%'&quot;;
    m_pSet-&gt;Open(CMedienDBSet::snapshot,sqlabfrage,CMedienDBSet::none);
  }
  if(IsDlgButtonChecked(IDC_RADIOMTYP))
  {
    sqlabfrage=&quot;SELECT * FROM [Objekt] WHERE [Medientyp] LIKE '%&quot;+m_Mtyp+&quot;%'&quot;;
    m_pSet-&gt;Open(CMedienDBSet::snapshot,sqlabfrage,CMedienDBSet::none);
  }

  if(m_pSet-&gt;GetRecordCount()==0)
  {
    m_pSet-&gt;Close();
    AfxMessageBox(&quot;Es wurde kein Eintrag gefunden!&quot;,MB_OK | MB_ICONINFORMATION);
   m_pSet-&gt;Open(CMedienDBSet::snapshot,&quot;SELECT * FROM  Objekt]&quot;,CMedienDBSet::none);
  }

  m_pSet-&gt;Requery();
  ShowData();
  UpdateData(FALSE);
  m_iMerkerSuchen=0;
}
</code></pre>
<p>Rechte Seite funktioniert nicht:</p>
<pre><code class="language-cpp">void CMedienDBView2::SQLAbfrage()
{ 
  m_pSet2-&gt;Close();	
  UpdateData(TRUE);
  CString sqlabfrage=&quot;&quot;;	

if(IsDlgButtonChecked(IDC_RADIOVORNAME))
{				
    sqlabfrage=&quot;SELECT * FROM [Leiher] WHERE [Vorname] LIKE '%&quot;+m_Vorname+&quot;%'&quot;;
    m_pSet2-&gt;Open(MedienDBSet2::snapshot,sqlabfrage,MedienDBSet2::none);	
}
if(IsDlgButtonChecked(IDC_RADIONACHNAME))
{						
    sqlabfrage=&quot;SELECT * FROM [Leiher] WHERE [Nachname] LIKE '%&quot;+m_Nachname+&quot;%'&quot;;
    m_pSet2-&gt;Open(MedienDBSet2::snapshot,sqlabfrage,MedienDBSet2::none);	
}
if(IsDlgButtonChecked(IDC_RADIOTELEFON))
{
    sqlabfrage=&quot;SELECT * FROM [Leiher] WHERE [Telefonnummer] LIKE '%&quot;+m_Telefon+&quot;%'&quot;;
    m_pSet2-&gt;Open(MedienDBSet2::snapshot,sqlabfrage,MedienDBSet2::none);	
}
if(IsDlgButtonChecked(IDC_RADIODATUM))
{				
    sqlabfrage=&quot;SELECT * FROM [Leiher] WHERE [Datum] LIKE '%&quot;+m_Datum+&quot;%'&quot;;
    m_pSet2-&gt;Open(MedienDBSet2::snapshot,sqlabfrage,MedienDBSet2::none);
}
if(m_pSet2-&gt;GetRecordCount()==0)
{
    m_pSet2-&gt;Close();
    AfxMessageBox(&quot;Es wurde kein Eintrag gefunden!&quot;,MB_OK | MB_ICONINFORMATION);
    m_pSet2-&gt;Open(MedienDBSet2::snapshot,&quot;SELECT * FROM [Leiher]&quot;,MedienDBSet2::none);
}

m_pSet2-&gt;Requery();	
ShowData();	
UpdateData(FALSE);

m_iMerkerSuchen=0;
}
</code></pre>
<p>Auf der rechten Seite bekomme ich eine Fehlermeldung:<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> Syntaxfehler (fehlender Operator) in Abfrageausdruck '`Vorname` LIKE '%A%' WHERE Objektnummer = 1'</p>
<p>Das 'WHERE Objektnummer = 1' kann ich mir absolut nicht erklären woher er das bekommt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> Bin leider noch blutender Anfänger und kenne mich noch nicht so gut aus. Würde mich freuen wenn mir jemand helfen könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/381734</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/381734</guid><dc:creator><![CDATA[Piranha]]></dc:creator><pubDate>Wed, 29 Oct 2003 09:01:57 GMT</pubDate></item><item><title><![CDATA[Reply to SQL-Abfrage funktioniert nicht! Bitte um Hilfe on Thu, 30 Oct 2003 08:42:36 GMT]]></title><description><![CDATA[<p>Wenn ich das richtig gesehen habe, arbeitest Du mit CRecordSet.<br />
CRecordSet setzt &quot;automatisch&quot; eine SQL-Abfrage zusammen, aus seinen einzelnen Membervariablen.<br />
Dafür gibt es:</p>
<p>CRecordSet::m_strFilter // Where<br />
CRecordSet::m_strSort // Sortierung, Group ...</p>
<p>Man kann den SQL-String beim Öffnen übergeben, aber das führt irgendwie meist zu Probleme (hatte ich jedenfalls)</p>
<p>Ein Ausschnitt von Dir mal abgeändert:</p>
<pre><code class="language-cpp">if(IsDlgButtonChecked(IDC_RADIOTITEL)) 
  { 
    // Select * FROM ... - es werden immer alle mit den Spalten verbundenen Membervariablen 
    // gelesen
    // Das RecordSet ist ja mit Deiner Tabelle in der DB verbunden
    // sqlabfrage=&quot;SELECT * FROM [Objekt]WHERE &quot;[Titel] Like '%&quot;+m_Titel+&quot;%'&quot;; 
    // mit Requery wird nochmals ein SQL-String aus den o.g. Membervar zusammegesetzt

    // Also ohne SQL-String öffnen
    m_pSet-&gt;Open(CMedienDBSet::snapshot, NULL, CMedienDBSet::none);
    // Testen, ob erfolgreich geöffnet wurde
    if (!m_pSet-&gt;IsOpen())
    {
        // Behandle den Fehler
    }
    // den WHERE-Teil zusammensetzen (ohne WHERE!)
    m_pSet-&gt;m_strFilter.Format(&quot;Titel Like '%%%s%%'&quot;, m_Titel)
    // Die Abfrage ausführen
    m_pSet-&gt;Requery();
  }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/382388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/382388</guid><dc:creator><![CDATA[MuehBln]]></dc:creator><pubDate>Thu, 30 Oct 2003 08:42:36 GMT</pubDate></item></channel></rss>