菜鸟教程小白 发表于 2022-12-12 10:04:27

ios - 使用firefox插件创建时如何打开.sqlite文件


                                            <p><p>我创建了我的表并使用 firefox sqlite manager 扩展插入了我的数据,保存并添加了我的 sqlitefile,它是“notifications.sqlite”,之后我编写了这段代码,但它会输出我<strong>nothing</strong>。</p>

<p>打开 .sqlite 文件和打开 .db 文件有什么区别吗?如何正确打开我的数据库?</p>

<p>*<em>更新:</em>*根据 friend 的评论调试后,这行有问题:</p>

<pre><code>databasePath = [ initWithString: ];
</code></pre>

<p>之后</p>

<pre><code>if ( == YES)
</code></pre>

<p>if 不是 YES,所以它将丢失所有内容,因此 databasePath 有点错误</p>

<p>我的表格如下:</p>

<pre><code>CREATE TABLE &#34;quotes_type&#34; (&#34;type_id&#34; INTEGER PRIMARY KEYAUTOINCREMENTNOT NULL , &#34;content&#34; VARCHAR)
</code></pre>

<p>这是我打开 .sqlite 文件的努力:</p>

<pre><code>- (void)viewDidLoad{

NSArray *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *docsDir = ;
    databasePath = [ initWithString: ];
    sqlite3_stmt *statement;
    NSFileManager *filemgr = ;
    if ( == YES)
    {
    if (sqlite3_open(, &amp;contactDB) == SQLITE_OK)
    {

      NSString *qrycount = ;

      const char *count_stmt = ;

      sqlite3_prepare_v2(contactDB, count_stmt, -1, &amp;statement, NULL);
      if (sqlite3_step(statement) == SQLITE_ERROR) {
            NSAssert1(0,@&#34;Error when selecting rows%s&#34;,sqlite3_errmsg(contactDB));
      } else {
            NSLog(@&#34;negin&#34;);
            int myid=sqlite3_column_int(statement, 0);
            NSString *text = ;
            NSLog(@&#34;myid is %d&#34;,myid);
            NSLog(@&#34;text is %@&#34;,text);
            sqlite3_finalize(statement);
            sqlite3_close(contactDB);
      }
    }
    else NSLog(@&#34;openning has problem&#34;);
    }
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您正在检查 <code>Documents</code> 中的数据库。但是你曾经在那里复制过吗?如果没有,你永远不会在那里找到它。您确实想检查该文件,如果找不到,请将其从 bundle 复制到 <code>Documents</code> 文件夹。因此,如果您在 <code>Documents</code> 中找不到该数据库,则应通过以下方式复制它:</p>

<pre><code>NSError *error;
NSString *bundleDatabasePath = [ pathForResource:@&#34;notifications&#34; ofType:@&#34;sqlite&#34;];
NSAssert(bundleDatabasePath, @&#34;database not found in bundle&#34;);
if (!)
    NSLog(@&#34;%s: copyItemAtPath failure: error = %@&#34;, __FUNCTION__, error);
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 使用firefox插件创建时如何打开.sqlite文件,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/15863488/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/15863488/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 使用firefox插件创建时如何打开.sqlite文件