Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 582
Записей в блоге: 1
#1

Создание 2-х таблиц в одной SQL db и отображение в отдельном табе TabActivity

06.02.2015, 12:02. Просмотров 931. Ответов 12
Метки нет (Все метки)

Приветствую! такая проблема как в одной базе создать несколько таблиц (желательно отдельными классами для таблиц, может есть пример такого класса P/S/ слабо представляю как он должен выглядеть), и отобразить в ListView таба, данные из таблицы, чтобы "листая табы" на каждом был список со своими данными, как это можно реализовать,... подскажите пожалуйста?

есть стандартный DB:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.net.Uri;
import android.view.MenuItem;
import android.widget.EditText;
 
public class DB {
    public static final Uri CONTENT_URI = Uri.parse(
            "content://com.samples.dbcontacts.contactprovider/contact");
      private static final String DB_NAME = "mydb";
      private static final int DB_VERSION = 1;
      public static final String DB_TABLE = "mytab";
      public static final String DB_TABLE2 = "mytab2";
     
      public static final String COLUMN_ID = "_id";
      public static final String COLUMN_IMG = "img";
      public static final String COLUMN_TXT = "txt";
 
public static final String COLUMN_ID2 = "_id";
    public static final String COLUMN_IMG2 = "img";
    public static final String COLUMN_TXT2 = "txt";
      
      public static EditText etName=null;
     
      private static final String DB_CREATE =
        "create table " + DB_TABLE + "(" +
          COLUMN_ID + " integer primary key autoincrement, " +
          COLUMN_IMG + " integer, " +
          COLUMN_TXT + " text" +
        ");";
    
      
      private static final String DB_CREATE2 =
                "create table " + DB_TABLE2 + "(" +
                  COLUMN_ID2 + " integer primary key autoincrement, " +
                  COLUMN_IMG2 + " integer, " +
                  COLUMN_TXT2 + " text" +
                ");";
     
      private final Context mCtx;
     
     
      private DBHelper mDBHelper;
      private SQLiteDatabase mDB;
     
      public DB(Context ctx) {
        mCtx = ctx;
      }
     
      // открыть подключение
      public void open() {
        mDBHelper = new DBHelper(mCtx, DB_NAME, null, DB_VERSION);
        mDB = mDBHelper.getWritableDatabase();
      }
     
      // закрыть подключение
      public void close() {
        if (mDBHelper!=null) mDBHelper.close();
      }
     
      // получить все данные из таблицы DB_TABLE
      public Cursor getAllData() {
        return mDB.query(DB_TABLE, null, null, null, null, null, null);
      }
     
      // добавить запись в DB_TABLE
      public void addRec(String txt) {
        ContentValues cv = new ContentValues();
        cv.put(COLUMN_TXT, txt);
      //  cv.put(COLUMN_IMG, string);
        mDB.insert(DB_TABLE, null, cv);
      }
      
      public void updRec(int id_col, String name) {
          ContentValues val=new ContentValues();
         // name = etName.getText().toString();
            
            val.put(COLUMN_TXT, name);
            
            mDB.update(DB_TABLE, val, "_id = " + id_col,null);
            //mDB.update(DB_TABLE, val, "_id="+id,null);
          }
      
 
       
      // удалить запись из DB_TABLE
      public void delRec(long id) {
        mDB.delete(DB_TABLE, COLUMN_ID + " = " + id, null);
      }
      
      private Context getContext() {
        // TODO Auto-generated method stub
        return null;
    }
    // класс по созданию и управлению БД
      public class DBHelper extends SQLiteOpenHelper {
 
        public DBHelper(Context context, String name, CursorFactory factory,
            int version) {
          super(context, name, factory, version);
        }
 
        // создаем и заполняем БД
        @Override
        public void onCreate(SQLiteDatabase db) {
          db.execSQL(DB_CREATE);
          db.execSQL(DB_TABLE2);
         
        //  ContentValues cv = new ContentValues();
       //   for (int i = 1; i < 5; i++) {
           // cv.put(COLUMN_TXT, "sometext " + i);
          //  cv.put(COLUMN_IMG, R.drawable.ic_launcher);
         //   db.insert(DB_TABLE, null, cv);
       //   }
        }
 
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        }
      }
    public SQLiteDatabase getWritableDatabase() {
        // TODO Auto-generated method stub
        return null;
    }
 
    public void insert(String dbTable, Object object, ContentValues cv) {
        // TODO Auto-generated method stub
        mDB.insertOrThrow(DB_TABLE, null, cv);
    }
 
    public Cursor query(String string, Object object, Object object2,
            Object object3, Object object4, Object object5, Object object6) {
        // TODO Auto-generated method stub
        mDB.query(DB_TABLE, null, null, null, null, null, null);
        return null;
    }
 
    
    }


Добавлено через 8 минут

есть так же два активити в каждом создается подключение к базе и аналогичные адаптеры, но в листвью второй активити отображаются такие же данные как и в первой, хотя в адаптере указываю другие поля (со второй таблицы)

что не так?

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2015, 12:02
Ответы с готовыми решениями:

Как написать условие на отображение в одной форме данных из отдельных таблиц?
Есть 5 таблиц: Таб1, Таб2 ... Таб5 (с подчин. таблицами). Все таблицы...

Отображение нескольких таблиц из базы данных SQL в DataGridView
Как создать отображение нескольких таблиц из базы данных SQL в DataGridView?

Создание двух таблиц в одной БД
Доброго времени суток Создаю БД, создаю одну таблицу, потом пітаюсь создать...

Создание таблиц SQL
Помогите создать таблицу в Cache SQL, которая содержала бы данные о студентах...

SQL Создание таблиц
Базу данных создал, а таблицу нет, почему? CREATE DATABASE R114 GO SET...

12
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
06.02.2015, 13:43 #2
Цитата Сообщение от disx Посмотреть сообщение
желательно отдельными классами для таблиц
Так не бывает для таблиц. Есть один класс для БД, в нем оперируйте с таблицами.
и отобразить в ListView таба, данные из таблицы, чтобы "листая табы"
но в листвью второй активити
Не понятно у вас табы с фрагментами или 2 активити?
Какой адаптер используете? SimpleCursorAdapter или кастомный.

Добавлено через 30 секунд
Вот вчера только делал для себя адаптер, пробуй
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class MyCursorAdapter extends CursorAdapter {
    private LayoutInflater mInflater;
    
    public MyCursorAdapter (Context context, Cursor c, int flags) {
        super(context, c, flags);
        mInflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        }
 
    @Override
    public void bindView(View view, Context context, Cursor cursor) {   
        TextView textView = (TextView) view.findViewById(R.id.myid);
        textView.setText(cursor.getString(cursor.getColumnIndex(myfield)));         
    }
 
    @Override
    public View newView(Context context, Cursor cursor, ViewGroup parent) {
        return mInflater.inflate(R.layout.myitem, parent, false);
    }
}
0
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 582
Записей в блоге: 1
06.02.2015, 17:21  [ТС] #3
Rube, 2 активити (по одному на каждом табе), да СимплКурсорАдаптер

Добавлено через 26 минут
Rube,
Так не бывает для таблиц. Есть один класс для БД, в нем оперируйте с таблицами.
я не могу проверить создается ли вторая таблица или нет смотрю в SQLite Manager, там в базе присутствует только первая, а второй нет может в этом проблема?
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
06.02.2015, 18:33 #4
Ну конечно, в onСreate то ошибка у вас.
0
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 582
Записей в блоге: 1
06.02.2015, 18:49  [ТС] #5
Rube, если имеется ввиду это:
Java
1
2
 db.execSQL(DB_CREATE);
          db.execSQL(DB_TABLE2);
, то менял так :
Java
1
2
 db.execSQL(DB_CREATE);
          db.execSQL(DB_CREATE2);
и даже так
Java
1
2
 db.execSQL(DB_TABLE);
          db.execSQL(DB_TABLE2);
, все равно следов второй таблицы не могу найти? или может что-то еще?
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
06.02.2015, 19:01 #6
2-й вариант должен быть правильный
0
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 582
Записей в блоге: 1
06.02.2015, 23:23  [ТС] #7
Rube, сделал второй вариант, и метод delRec2 сделал при его использовании на пустом списке вылетает пишет: android.database.sqlite.SQLiteException: no such table: mytab2:

что же еще может быть?

Добавлено через 15 минут
пробовал закоментить первую таблицу и ее поля- сыпется...
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
07.02.2015, 08:48 #8
Выкладывай код
0
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 582
Записей в блоге: 1
07.02.2015, 17:16  [ТС] #9
Rube,
База
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
package com.cribactivity;
 
 
 
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.net.Uri;
import android.widget.EditText;
 
public class DB {
    public static final Uri CONTENT_URI = Uri.parse(
            "content://com.samples.dbcontacts.contactprovider/contact");
      private static final String DB_NAME = "mydb";
      private static final int DB_VERSION = 1;
      public static final String DB_TABLE = "mytab";
      public static final String DB_TABLE2 = "mytab2";
     
      public static final String COLUMN_ID = "_id";
      public static final String COLUMN_IMG = "img";
      public static final String COLUMN_TXT = "txt";
      
      public static final String COLUMN_ID2 = "_id";
        public static final String COLUMN_IMG2 = "img";
        public static final String COLUMN_TXT2 = "txt";
      
      public static EditText etName=null;
     
      private static final String DB_CREATE =
        "create table " + DB_TABLE + "(" +
          COLUMN_ID + " integer primary key autoincrement, " +
          COLUMN_IMG + " integer, " +
          COLUMN_TXT + " text" +
        ");";
          
      
        
        private static final String DB_CREATE2 =
                "create table " + DB_TABLE2 + "(" +
                  COLUMN_ID2 + " integer primary key autoincrement, " +
                  COLUMN_IMG2 + " integer, " +
                  COLUMN_TXT2 + " text" +
                ");";
      private final Context mCtx;
     
     
      private DBHelper mDBHelper;
      private SQLiteDatabase mDB;
     
      public DB(Context ctx) {
        mCtx = ctx;
      }
     
      // открыть подключение
      public void open() {
        mDBHelper = new DBHelper(mCtx, DB_NAME, null, DB_VERSION);
        mDB = mDBHelper.getWritableDatabase();
      }
     
      // закрыть подключение
      public void close() {
        if (mDBHelper!=null) mDBHelper.close();
      }
     
      // получить все данные из таблицы DB_TABLE
      public Cursor getAllData() {
        return mDB.query(DB_TABLE, null, null, null, null, null, null);
        
      }
      public Cursor getAllData2() {
            return mDB.query(DB_TABLE2, null, null, null, null, null, null);
            
          }
     
      // добавить запись в DB_TABLE
      public void addRec(String txt) {
        ContentValues cv = new ContentValues();
        cv.put(COLUMN_TXT, txt);
      //  cv.put(COLUMN_IMG, string);
        mDB.insert(DB_TABLE, null, cv);
      }
      
      public void updRec(int id_col, String name) {
          ContentValues val=new ContentValues();
         // name = etName.getText().toString();
            
            val.put(COLUMN_TXT, name);
            
            mDB.update(DB_TABLE, val, "_id = " + id_col,null);
            //mDB.update(DB_TABLE, val, "_id="+id,null);
          }
      public void updRec2(int id_col, String name) {
          ContentValues val=new ContentValues();
         // name = etName.getText().toString();
            
            val.put(COLUMN_TXT2, name);
            
            mDB.update(DB_TABLE2, val, "_id = " + id_col,null);
            //mDB.update(DB_TABLE, val, "_id="+id,null);
          }
 
       
      // удалить запись из DB_TABLE
      public void delRec(long id) {
        mDB.delete(DB_TABLE, COLUMN_ID + " = " + id, null);
      }
      // удалить запись из DB_TABLE
      public void delRec2(long id) {
        mDB.delete(DB_TABLE2, COLUMN_ID2 + " = " + id, null);
      }
      private Context getContext() {
        // TODO Auto-generated method stub
        return null;
    }
    // класс по созданию и управлению БД
      public class DBHelper extends SQLiteOpenHelper {
 
        public DBHelper(Context context, String name, CursorFactory factory,
            int version) {
          super(context, name, factory, version);
        }
       
        // создаем и заполняем БД
        @Override
        public void onCreate(SQLiteDatabase db) {
          db.execSQL(DB_CREATE);
          db.execSQL(DB_CREATE2);
          
       
         
          ContentValues cv = new ContentValues();
          for (int i = 1; i < 5; i++) {
            cv.put(COLUMN_TXT2, "sometext " + i);
            cv.put(COLUMN_IMG2, R.drawable.ic_launcher);
            db.insert(DB_TABLE2, null, cv);
          }
        }
 
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        }
      }
    public SQLiteDatabase getWritableDatabase() {
        // TODO Auto-generated method stub
        return null;
    }
 
    public void insert(String dbTable, Object object, ContentValues cv) {
        // TODO Auto-generated method stub
        mDB.insertOrThrow(DB_TABLE, null, cv);
    }
 
    public Cursor query(String string, Object object, Object object2,
            Object object3, Object object4, Object object5, Object object6) {
        // TODO Auto-generated method stub
        mDB.query(DB_TABLE, null, null, null, null, null, null);
        return null;
    }
    public Cursor query2(String string, Object object, Object object2,
            Object object3, Object object4, Object object5, Object object6) {
        // TODO Auto-generated method stub
        mDB.query(DB_TABLE2, null, null, null, null, null, null);
        return null;
    }
    
    }
Второй список для работы со второй таблицей
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
package com.cribactivity;
 
 
 
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.widget.SimpleCursorAdapter;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.AdapterView.AdapterContextMenuInfo;
 
public class TwoActivity extends Activity {
      private static final int CM_EDIT_ID = 0;
    private static final int CM_DELETE_ID = 0;
    private static final int IDD_EDIT = 0;
    ListView lvData;
      final String LOG_TAG = "MyLog";
      public DB db;
 
        int id_col;
        SimpleCursorAdapter scAdapter2;
        private Cursor cursor2;
        EditText et, et2;
      
      @SuppressWarnings("deprecation")
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.two);
       
        
        db = new DB(this);
        db.open();
 
        // получаем курсор
        cursor2 = db.getAllData();
        startManagingCursor(cursor2);
 
        // формируем столбцы сопоставления
        String[] from = new String[] {  DB.COLUMN_IMG2, DB.COLUMN_TXT2 };
        int[] to = new int[] { R.id.ivImg1, R.id.tvText1 };
//-----------------------------------------------------------
        
        //-----------------------------------------------------------
        // создааем адаптер и настраиваем список
        scAdapter2 = new SimpleCursorAdapter(this, R.layout.item, cursor2, from, to);
        lvData = (ListView) findViewById(R.id.listView2);
        lvData.setAdapter(scAdapter2);
 
        // добавляем контекстное меню к списку
        registerForContextMenu(lvData);
 
 
      }
      public void onCreateContextMenu(ContextMenu menu, View v,
                ContextMenuInfo menuInfo) {
            menu.add(0, CM_EDIT_ID, 0, R.string.edit_record);
            menu.add(0, CM_DELETE_ID, 0, R.string.delete_record);
        }
 
        @SuppressWarnings("deprecation")
        public boolean onContextItemSelected(MenuItem item) {
            if (item.getItemId() == CM_EDIT_ID) {
                AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item
                        .getMenuInfo();
                cursor2.moveToPosition(acmi.position);
                id_col = cursor2.getInt(cursor2.getColumnIndex(DB.COLUMN_ID));
 
                showDialog(IDD_EDIT);
                cursor2.requery();
                // return true;
 
            }
 
            if (item.getItemId() == CM_DELETE_ID) {
                // получаем из пункта контекстного меню данные по пункту списка
                AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item
                        .getMenuInfo();
                // извлекаем id записи и удаляем соответствующую запись в БД
                db.delRec2(acmi.id);
                // обновляем курсор
                cursor2.requery();
                // return true;
            }
            return super.onContextItemSelected(item);
        }
        
        protected void onDestroy() {
            super.onDestroy();
            // закрываем подключение при выходе
            db.close();
        }
 
        @SuppressWarnings("deprecation")
        protected void onPrepareDialog(int id, Dialog dialog) {
            super.onPrepareDialog(id, dialog);
 
            // removeDialog(id);
        }
 
        protected Dialog onCreateDialog(int id) {
 
            switch (id) {
            case IDD_EDIT:
                LayoutInflater inflater = LayoutInflater.from(this);
 
                View root = inflater.inflate(R.layout.dial, null);
                final EditText textName = (EditText) root.findViewById(R.id.name);
 
                textName.setText(cursor2.getString(2));
 
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setView(root);
                builder.setTitle(R.string.title_edit);
                builder.setPositiveButton("Ок",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {
                                String name = textName.getText().toString();
 
                                Toast toast = Toast.makeText(
                                        getApplicationContext(), name,
                                        Toast.LENGTH_SHORT);
                                toast.show();
 
                                db.updRec2(id_col, name);
                                // db.insert(DB.DB_TABLE, null, cv);
                                // Cursor c = db.query("mytable", null, null, null,
                                // null, null, null);
 
                                dialog.cancel();
                                cursor2.requery();
                            }
 
                        });
                builder.setNegativeButton("Отмена",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {
 
                                dialog.cancel();
                                cursor2.requery();
                            }
                        });
 
                builder.setCancelable(false);
                removeDialog(id);
                return builder.create();
            default:
                return null;
            }
        }
 
    }
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
08.02.2015, 13:57 #10
Лучший ответ Сообщение было отмечено disx как решение

Решение

Из приведенного кода следует, что данные листвью заполняются методом getAllData(), который берет их из т. DB_TABLE, которая пустая (см. // создаем и заполняем БД). Как вы умудрились удалять то чего нет, большой вопрос.
Когда я изменил в текущем коде в гл. активити getAllData() на getAllData2(), данные появились на экране, долгим тапом вызвал контекст. меню > delete_record, строка удалилась без ошибок.
Кроме этого я только закоментил метод onCreateDialog, т.к. было лень создавать лаяут.
Так что все работает. Ну и бд сделал как mydb.db, чтобы посмотреть внутри что там.
1
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 582
Записей в блоге: 1
08.02.2015, 22:03  [ТС] #11
Rube, спасибо друг, аномалия в том что программирую на ноуте, так вот если его отправлять в спящий режим а потом просыпать (даже если eclipse вырубать что я не всегда делаю), то происходят странности и глюки, перезагрузил ноут запустил прогу, все заработало, отображаются листы из разных таблиц (ну в TwoActivity поменял на getAllData2), разобрались, главное ноут не усыплять....
1
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
09.02.2015, 10:30 #12
Ну да, eclipse тот еще глюк, рад, что разобрались, спрашивай если что.
0
serjufa1
1 / 1 / 0
Регистрация: 15.10.2007
Сообщений: 75
30.06.2016, 11:57 #13
можно увидеть готовый пример?
0
30.06.2016, 11:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2016, 11:57

Создание одной формы для двух таблиц
Подскажите пожалуйста, как сделать следующее: 1. Есть две таблицы...

Создание таблиц SQL-запросом
Доброго времени суток! Пытаюсь питоном создать таблицу БД и записать в неё...

SQL-запрос на создание таблиц
В общем дело обстоит следующем образом: Нужно заполнить БД программы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru