سؤال

هل هناك أداة ترحيل سكليتي قاعدة البيانات SQL Server (كل من هيكل البيانات) ؟

هل كانت مفيدة؟

المحلول

سكليتي لديها خيار .dump لتشغيل في سطر الأوامر. على الرغم من أنني تفضل استخدام سكليتي متصفح قاعدة بيانات تطبيق لإدارة قواعد البيانات سكليتي. يمكنك تصدير هيكل ومحتويات ملف .SQL التي يمكن قراءتها من قبل أي شيء. ملف> تصدير> قاعدة بيانات إلى ملف SQL.

نصائح أخرى

أعلم أن هذا الموضوع القديم, ولكن أعتقد أن هذا الحل يجب أن يكون هنا أيضا.

  • تثبيت برنامج تشغيل ODBC على SQLite
  • تشغيل odbcad32 إلى x64 أو C:\Windows\SysWOW64\odbcad32.exe ل x86
  • إنشاء نظام DSN, حيث يمكنك اختيار SQLite3 تشغيل ODBC
  • ثم يمكنك ملء استمارة فيها اسم قاعدة البيانات هو أسم دليل على قاعدة بيانات sqlite

ثم في SQL Server تعمل تحت مسؤول النظام

USE [master]
GO
EXEC sp_addlinkedserver 
   @server     = 'OldSQLite', -- connection name
   @srvproduct = '',          -- Can be blank but not NULL
   @provider   = 'MSDASQL', 
   @datasrc    = 'SQLiteDNSName' -- name of the system DSN connection 
GO

ثم يمكنك تشغيل الاستعلامات الخاصة بك كمستخدم عادي على سبيل المثال

SELECT * INTO SQLServerDATA FROM openquery(SQLiteDNSName, 'select * from SQLiteData')

أو يمكنك استخدام شيء من هذا القبيل هذا أكبر الجداول.

والأمر سكليتي .dump سيتم إخراج محتويات قاعدة البيانات كملف نص ASCII. هذا الملف في تنسيق SQL القياسية، لذلك يمكن استيرادها إلى أي قاعدة بيانات SQL. مزيد من التفاصيل في هذه الصفحة: sqlite3

sqlite manager, فايرفوكس إضافة على:يسمح لك تصدير قاعدة بيانات SQLite في برنامج نصي SQL.

قاعدة البيانات>تصدير قاعدة البيانات>تصدير إلى ملف

(تصحيح فايرفوكس 35 bugg ملزمة الصحيح ملحق الكود كما تشير إلى صفحة الويب التالية:كيفية إصلاح جهاز اختياري سكليتي مدير وحدة العمل)

سطر الأوامر :

sqlite3 DB_name .dump > DB_name.sql

تصدير قاعدة بيانات sqlite في برنامج نصي SQL.

من عنوان url : http://doc.ubuntu-fr.org/sqlite.

وهناك فكرة لقيام بعض الشيء من هذا القبيل: - مشاهدة squema في لايت SQL والحصول على الأمر CREATE TABLE. - تنفيذ، تحليل SQL في SQL SERVER - بيانات السفر خلق قرأه INSERT لكل صف. (تحليل مزود أيضا)

وهذا الرمز هو بيتا، لأنه لا يوجد الكشف عن نوع البيانات، وعدم استخدامparameter والقيادة الكائن، ولكن تشغيل.

و(تحتاج إلى إدراج إشارة وتثبيت System.Data.SQLite؛)

وج #: أدخل هذا الرمز (أو neccesari) في رأس CS

وباستخدام النظام؛

وباستخدام System.Collections.Generic؛

وباستخدام System.Text؛

وباستخدام System.Data؛

واستخدام System.Data.SqlClient؛

وباستخدام System.Data.SQLite؛

وباستخدام System.Threading؛

وباستخدام System.Text.RegularExpressions؛

وباستخدام System.IO؛

وباستخدام log4net؛

واستخدام System.Net؛

    public static Boolean SqLite2SqlServer(string sqlitePath, string connStringSqlServer)
    {
        String SqlInsert;
        int i;
        try
        {

            string sql = "select * from sqlite_master where type = 'table' and name like 'YouTable in SQL'";
            string password = null;
            string sql2run;
            string tabla;
            string sqliteConnString = CreateSQLiteConnectionString(sqlitePath, password);
            //sqliteConnString = "data source=C:\\pro\\testconverter\\Origen\\FACTUNETWEB.DB;page size=4096;useutf16encoding=True";

            using (SQLiteConnection sqconn = new SQLiteConnection(sqliteConnString))
            {



                sqconn.Open();

                SQLiteCommand command = new SQLiteCommand(sql, sqconn);
                SQLiteDataReader reader = command.ExecuteReader();

                SqlConnection conn = new SqlConnection(connStringSqlServer);
                conn.Open();
                while (reader.Read())
                {
                    //Console.WriteLine("Name: " + reader["name"] + "\tScore: " + reader["score"]);
                    sql2run = "" + reader["sql"];
                    tabla = "" + reader["name"];

                    /*
                    sql2run = "Drop table " + tabla;
                    SqlCommand cmd = new SqlCommand(sql2run, conn);                       
                    cmd.ExecuteNonQuery();
                    */



                    sql2run = sql2run.Replace("COLLATE NOCASE", "");
                    sql2run = sql2run.Replace(" NUM", " TEXT");
                    SqlCommand cmd2 = new SqlCommand(sql2run, conn);
                    cmd2.ExecuteNonQuery();


                    // insertar los datos.
                    string sqlCmd = "Select *  From " + tabla;
                    SQLiteCommand cmd = new SQLiteCommand(sqlCmd, sqconn);
                    SQLiteDataReader rs = cmd.ExecuteReader();
                    String valor = "";
                    String Valores = "";
                    String Campos = "";
                    String Campo = "";
                    while (rs.Read())
                    {
                        SqlInsert = "INSERT INTO " + tabla;
                        Campos = "";
                        Valores = "";
                        for ( i = 0; i < rs.FieldCount ; i++)
                        {

                            //valor = "" + rs.GetString(i);
                            //valor = "" + rs.GetName(i);
                            Campo = "" + rs.GetName(i);
                            valor = "" + rs.GetValue(i);

                            if (Valores != "")
                            {
                                Valores = Valores + ',';
                                Campos = Campos + ',';
                            }
                            Valores = Valores + "'" + valor + "'";
                            Campos = Campos + Campo;
                        }
                        SqlInsert = SqlInsert + "(" + Campos + ") Values (" + Valores + ")";
                        SqlCommand cmdInsert = new SqlCommand(SqlInsert, conn);
                        cmdInsert.ExecuteNonQuery();


                    }


                }

                }
            return true;
        } //END TRY
        catch (Exception ex)
        {
            _log.Error("unexpected exception", ex);

            throw;

        } // catch
    }

لالروبوت.

adb root
adb shell
cd /data/com.xxx.package/databases/
sqlite3 db_name .dump >dump.sql
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top