If you are using the main C++ distribution of wxWidgets, Feel free to ask any question related to wxWidgets development here. This means questions regarding to C++ and wxWidgets, not compile problems.
pbgui_mainframe.cpp
.\pbgui_mainframe.cpp(72) : error C2678: бинарный '+': не найден оператор, принимающий левый операнд типа 'const char [28]' (или приемлемое преобразование отсутствует)
C:\wxWidgets-2.8.10\include\wx/string.h(1045): может быть 'wxString operator +(const wxString &,const wxString &)' [найдено при поиске с зависимостью от аргументов]
C:\wxWidgets-2.8.10\include\wx/string.h(1048): или 'wxString operator +(const wxString &,wxChar)' [найдено при поиске с зависимостью от аргументов]
C:\wxWidgets-2.8.10\include\wx/string.h(1050): или 'wxString operator +(wxChar,const wxString &)' [найдено при поиске с зависимостью от аргументов]
C:\wxWidgets-2.8.10\include\wx/string.h(1052): или 'wxString operator +(const wxString &,const wxChar *)' [найдено при поиске с зависимостью от аргументов]
C:\wxWidgets-2.8.10\include\wx/string.h(1055): или 'wxString operator +(const wxChar *,const wxString &)' [найдено при поиске с зависимостью от аргументов]
C:\wxWidgets-2.8.10\include\wx/string.h(1618): или 'wxString operator +(const wxString &,const wxWCharBuffer &)'
C:\wxWidgets-2.8.10\include\wx/string.h(1620): или 'wxString operator +(const wxWCharBuffer &,const wxString &)'
C:\wxWidgets-2.8.10\include\wx/arrstr.h(231): или 'wxArrayString::reverse_iterator::itor operator +(int,const wxArrayString::reverse_iterator::itor &)'
C:\wxWidgets-2.8.10\include\wx/arrstr.h(232): или 'wxArrayString::reverse_iterator::itor operator +(const wxArrayString::reverse_iterator::itor &,int)'
C:\wxWidgets-2.8.10\include\wx/arrstr.h(257): или 'wxArrayString::const_reverse_iterator::itor operator +(int,const wxArrayString::const_reverse_iterator::itor &)'
C:\wxWidgets-2.8.10\include\wx/arrstr.h(258): или 'wxArrayString::const_reverse_iterator::itor operator +(const wxArrayString::const_reverse_iterator::itor &,int)'
C:\wxWidgets-2.8.10\include\wx/longlong.h(1047): или 'wxLongLong operator +(long,const wxLongLong &)'
C:\wxWidgets-2.8.10\include\wx/longlong.h(1060): или 'wxULongLong operator +(unsigned long,const wxULongLong &)'
C:\wxWidgets-2.8.10\include\wx/string.h(1045): или 'wxString operator +(const wxString &,const wxString &)' [найдено при поиске с зависимостью от аргументов]
C:\wxWidgets-2.8.10\include\wx/string.h(1048): или 'wxString operator +(const wxString &,wxChar)' [найдено при поиске с зависимостью от аргументов]
C:\wxWidgets-2.8.10\include\wx/string.h(1050): или 'wxString operator +(wxChar,const wxString &)' [найдено при поиске с зависимостью от аргументов]
C:\wxWidgets-2.8.10\include\wx/string.h(1052): или 'wxString operator +(const wxString &,const wxChar *)' [найдено при поиске с зависимостью от аргументов]
C:\wxWidgets-2.8.10\include\wx/string.h(1055): или 'wxString operator +(const wxChar *,const wxString &)' [найдено при поиске с зависимостью от аргументов]
при попытке сопоставить список аргументов '(const char [28], wxString)'
Thank you doublemax, but it looks like wxSQLite3StatementBuffer type is not wxString....
it reads first characters of the string...
For example:
phone: "5134782920" is written into databese as "5"
name: "Albert Einstein" is written into database as "A" and so on.....
Big_Lebowski wrote:but it looks like wxSQLite3StatementBuffer type is not wxString....
Right. This class is only a wrapper around the SQLite function sqlite3_vmprintf. It's use is restricted to what you can do with the C/C++ function printf.
I don't recommend using wxSQLite3StatementBuffer at all, since it makes your code vulnerable to SQL code injection.
Big_Lebowski wrote:it reads first characters of the string...
For example:
phone: "5134782920" is written into databese as "5"
name: "Albert Einstein" is written into database as "A" and so on.....
Not, if you use wxSQLite3StatementBuffer::Format correctly. But certainly passing wxString parameters directly to this method will produce unexpected results.
Take a look at the sample application accompanying wxSQLite3 and use prepared statements and method wxSQLite3Statement::Bind to pass values to your SQL statement.
utelle wrote:
Take a look at the sample application accompanying wxSQLite3 and use prepared statements and method wxSQLite3Statement::Bind to pass values to your SQL statement.
Regards,
Ulrich
Wow! it works ) Thank you utelle, I can't believe it, I struggled with it for a week ) I did this code:
It works OK, excepting it inserts last row only, all rows before last one, in wxGrid control is empty, for example:
if phones table has 10 rows, the code inserts 9 empty rows, the last 10-th row (in the table) is inserted OK.
What do I do wrong?
How can I insert datas form databese into wxGrid control?