yong076 / robertprojects

Automatically exported from code.google.com/p/robertprojects
1 stars 0 forks source link

Неправильно обрабатываются файлы, содержащие минус (-) #54

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
При загрузке карты из файла содержащего 
минус (в моём случае yamap-kg.tar),
программа пытается удалить таблицу 
cahs_yamap-kg_tar, что приводит к
исключению:

E/Database(  747): Failure 1 (near "-": syntax error) on 0x22f8a0 when
preparing 'DROP TABLE IF EXISTS cahs_yamap-kg_tar'.                       

D/AndroidRuntime(  747): Shutting down VM                                 

W/dalvikvm(  747): threadid=3: thread exiting with uncaught exception
(group=0x4000fe70)                                                        

E/AndroidRuntime(  747): Uncaught handler: thread main exiting due to
uncaught exception                                                        

E/AndroidRuntime(  747): android.database.sqlite.SQLiteException: near "-":
syntax error: DROP TABLE IF EXISTS cahs_yamap-kg_tar                      

E/AndroidRuntime(  747):        at
android.database.sqlite.SQLiteDatabase.native_execSQL(Native Method)      

E/AndroidRuntime(  747):        at
android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1496)  

E/AndroidRuntime(  747):        at
org.andnav.osm.views.util.OpenStreetMapTileFilesystemProvider$OpenStreetMapTileF
ilesystemProviderDataBase.CreateTarIndex(OpenStreetMapTileFilesystemProvider.jav
a:783)

E/AndroidRuntime(  747):        at
org.andnav.osm.views.util.OpenStreetMapTileFilesystemProvider.IndexTarFile(OpenS
treetMapTileFilesystemProvider.java:167)

E/AndroidRuntime(  747):        at
org.andnav.osm.views.util.OpenStreetMapTileFilesystemProvider.setCashFile(OpenSt
reetMapTileFilesystemProvider.java:148)

E/AndroidRuntime(  747):        at
org.andnav.osm.views.util.OpenStreetMapTileProvider.setRender(OpenStreetMapTileP
rovider.java:83)

E/AndroidRuntime(  747):        at
org.andnav.osm.views.OpenStreetMapView.setRenderer(OpenStreetMapView.java:285)

E/AndroidRuntime(  747):        at
com.robert.maps.MainView.onOptionsItemSelected(MainView.java:283)         

E/AndroidRuntime(  747):        at
android.app.Activity.onMenuItemSelected(Activity.java:2085)               

E/AndroidRuntime(  747):        at
com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java
:820)

E/AndroidRuntime(  747):        at
com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:139)
E/AndroidRuntime(  747):        at
com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:81
3)
E/AndroidRuntime(  747):        at
com.android.internal.view.menu.MenuDialogHelper.onClick(MenuDialogHelper.java:12
0)
E/AndroidRuntime(  747):        at
com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertControll
er.java:884)
E/AndroidRuntime(  747):        at
android.widget.AdapterView.performItemClick(AdapterView.java:283)
E/AndroidRuntime(  747):        at
android.widget.ListView.performItemClick(ListView.java:3132)
E/AndroidRuntime(  747):        at
android.widget.AbsListView$PerformClick.run(AbsListView.java:1620)
E/AndroidRuntime(  747):        at
android.os.Handler.handleCallback(Handler.java:587)
E/AndroidRuntime(  747):        at
android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime(  747):        at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(  747):        at
android.app.ActivityThread.main(ActivityThread.java:3948)
E/AndroidRuntime(  747):        at
java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(  747):        at
java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(  747):        at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
E/AndroidRuntime(  747):        at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
E/AndroidRuntime(  747):        at dalvik.system.NativeStart.main(Native
Method)

По видимому, следует как-то заменять дефис 
в названиях таблиц, или эти
названия помещать в какие-нибудь кавычки. В 
мускуле для этого используются
апострофы (`), в некоторых других диалектах 
— квадратные скобки. Как в
SQLite я, к сожалению, не знаю.

Original issue reported on code.google.com by edward.h...@gmail.com on 8 Sep 2009 at 7:44

GoogleCodeExporter commented 9 years ago
Понял. Спасибо. Исправлю.

Original comment by RobertK...@gmail.com on 8 Sep 2009 at 8:20

GoogleCodeExporter commented 9 years ago
Исправлено

Original comment by RobertK...@gmail.com on 9 Sep 2009 at 12:54