From 5661397311deb4e07a974eeb11bdd82d3387c1e1 Mon Sep 17 00:00:00 2001 From: "U-QUAN-W4\\Administrator" Date: Sun, 28 Mar 2010 18:03:02 +0800 Subject: [PATCH] parse boolean value correctly --- pgadmin/frm/frmImport.cpp | 33 ++++++++++++++++++++++++++++++--- pgadmin/include/frm/frmImport.h | 3 +-- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/pgadmin/frm/frmImport.cpp b/pgadmin/frm/frmImport.cpp index d878eaa41..658a1fa6f 100755 --- a/pgadmin/frm/frmImport.cpp +++ b/pgadmin/frm/frmImport.cpp @@ -3181,6 +3181,11 @@ bool frmImport::CheckWizardPage() if (chkFileCheckTrueFirst->GetValue()) { + if (m_boolfalsevals) + { + delete m_boolfalsevals; + m_boolfalsevals = NULL; + } wxString truevals = txtFileOptTrueVals->GetValue().Trim().Trim(false); if (truevals.IsEmpty()) { @@ -3214,6 +3219,11 @@ bool frmImport::CheckWizardPage() } else { + if (m_booltruevals) + { + delete m_booltruevals; + m_booltruevals = NULL; + } wxString falsevals = txtFileOptFalseVals->GetValue().Trim().Trim(false); if (falsevals.IsEmpty()) { @@ -4033,14 +4043,14 @@ void frmImport::GenColsPreview() { if (chktruefirst) { - if (m_booltruevals->Index(cellval)==wxNOT_FOUND) + if (m_booltruevals->Index(cellval)!=wxNOT_FOUND) gridColsSampleData->SetCellValue(pvgridrowidx, pvgridcolidx, IMPBOOLTRUEDISP); else gridColsSampleData->SetCellValue(pvgridrowidx, pvgridcolidx, IMPBOOLFALSEDISP); } else { - if (m_boolfalsevals->Index(cellval)==wxNOT_FOUND) + if (m_boolfalsevals->Index(cellval)!=wxNOT_FOUND) gridColsSampleData->SetCellValue(pvgridrowidx, pvgridcolidx, IMPBOOLFALSEDISP); else gridColsSampleData->SetCellValue(pvgridrowidx, pvgridcolidx, IMPBOOLTRUEDISP); @@ -4273,7 +4283,7 @@ bool frmImport::GenCSVSQLData(wxString& rowdatalist, wxString& rowlog, wxString* bool isfirstcol = true, haserror = false; wxDateTime tsfromval; - size_t dbcolidx, /*pvgridrowidx = 0, */pvgridcolidx; + size_t dbcolidx, pvgridcolidx; wxString curcdate = clienttime.FormatISODate(); wxString curctime = clienttime.FormatISOTime(); @@ -4569,6 +4579,23 @@ bool frmImport::GenCSVSQLData(wxString& rowdatalist, wxString& rowlog, wxString* rowdatalist.Append(wxT("")); } } + else if ((m_booltruevals || m_boolfalsevals) && tgtcoltype==wxT("boolean")) + { + if (m_booltruevals) + { + if (m_booltruevals->Index(colval)!=wxNOT_FOUND) + rowdatalist.Append(wxT("true")); + else + rowdatalist.Append(wxT("false")); + } + else + { + if (m_boolfalsevals->Index(colval)!=wxNOT_FOUND) + rowdatalist.Append(wxT("false")); + else + rowdatalist.Append(wxT("true")); + } + } else { if (impmode==IMPORTMODECOPY) diff --git a/pgadmin/include/frm/frmImport.h b/pgadmin/include/frm/frmImport.h index 36e0755c9..c8a0d468a 100755 --- a/pgadmin/include/frm/frmImport.h +++ b/pgadmin/include/frm/frmImport.h @@ -215,8 +215,7 @@ private: wxString *m_fileoptstartwith; // boolean values - wxArrayString *m_booltruevals; - wxArrayString *m_boolfalsevals; + wxArrayString *m_booltruevals, *m_boolfalsevals; // target table columns info size_t m_tgtcolsnum;// columns number -- 2.39.5