Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Masayuki Nii
964 views
Cocoa勉強会#6-SQLiteをCocoaで使う
Cocoa勉強会#6 2004/7/10 SQLiteをCocoaで使う 新居雅行
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 4
2
/ 4
3
/ 4
4
/ 4
More Related Content
PDF
SQLQL とは!?
by
yancya
PDF
SQLQL は GraphQL にとってなんなのか
by
yancya
PDF
Javaセキュアコーディングセミナー東京第3回演習
by
JPCERT Coordination Center
PPTX
Solr 4.0 の主な機能
by
Shinichiro Abe
PDF
named_scope more detail
by
Kyosuke MOROHASHI
PDF
Web講座 第9回
by
nanametown
PDF
2019年度若手技術者向け講座 インデックス
by
keki3
PPT
Apache ManifoldCF
by
Shinichiro Abe
SQLQL とは!?
by
yancya
SQLQL は GraphQL にとってなんなのか
by
yancya
Javaセキュアコーディングセミナー東京第3回演習
by
JPCERT Coordination Center
Solr 4.0 の主な機能
by
Shinichiro Abe
named_scope more detail
by
Kyosuke MOROHASHI
Web講座 第9回
by
nanametown
2019年度若手技術者向け講座 インデックス
by
keki3
Apache ManifoldCF
by
Shinichiro Abe
Viewers also liked
DOCX
Forbidden love 4
by
SATANAPUN
PDF
Finance Deck 11062014
by
Elske Meines
DOCX
Some Dewey, Some Don't - Final Youth Branch Categories
by
Gail Borden Public Library
PDF
El Cant Del BarçA
by
MARTA FIGUERAS
DOC
Regulamento interno2
by
nacyr
PPT
Humans are getting dumber ii
by
Encarni González
Forbidden love 4
by
SATANAPUN
Finance Deck 11062014
by
Elske Meines
Some Dewey, Some Don't - Final Youth Branch Categories
by
Gail Borden Public Library
El Cant Del BarçA
by
MARTA FIGUERAS
Regulamento interno2
by
nacyr
Humans are getting dumber ii
by
Encarni González
Similar to Cocoa勉強会#6-SQLiteをCocoaで使う
PDF
FMDBの利用方法
by
uske7i
PDF
iOSハンズオントレーニング データの永続化編(SQLite3, NSUserDefaults)
by
聡 大久保
PDF
Introduction to cocoa sql mapper
by
mavelph
PDF
初心者向け SQLite の始め方
by
suno88
PDF
データベース技術 11(Database 11)
by
Yuka Obu
KEY
Core Data
by
Kosuke Matsuda
PDF
Sqlite
by
Yohei Sakakibara
PDF
データベース11 - データベースとプログラム
by
Kenta Oku
PPT
Android Hacks - Hack31
by
Masanori Ohkawara
PDF
データベース技術 7(Database 7)
by
Yuka Obu
PPTX
Webアプリケーション入門(3)
by
Takashi Asanuma
PDF
データベース技術 10(Database 10)
by
Yuka Obu
PDF
今更だけどSqLite触ってみたよ
by
Keisuke Oohata
PDF
Getting started MySQL as Document Data Store
by
Chihiro Ito
PDF
Google Gears データベースの基礎
by
webos-goodies
PDF
【第3回初心者勉強会】データベースを使おう
by
Shuhei Iitsuka
PPT
2011年2月9日第130回FxUG勉強会@東京第一打者空振り三振
by
Sadao Tokuyama
PDF
【第二回Android勉強会】データ永続化
by
Ishin FUKUOKA
PDF
RとSQLiteによるオミックス解析の促進
by
弘毅 露崎
PPTX
テーブルの変更・作成
by
Jun Chiba
FMDBの利用方法
by
uske7i
iOSハンズオントレーニング データの永続化編(SQLite3, NSUserDefaults)
by
聡 大久保
Introduction to cocoa sql mapper
by
mavelph
初心者向け SQLite の始め方
by
suno88
データベース技術 11(Database 11)
by
Yuka Obu
Core Data
by
Kosuke Matsuda
Sqlite
by
Yohei Sakakibara
データベース11 - データベースとプログラム
by
Kenta Oku
Android Hacks - Hack31
by
Masanori Ohkawara
データベース技術 7(Database 7)
by
Yuka Obu
Webアプリケーション入門(3)
by
Takashi Asanuma
データベース技術 10(Database 10)
by
Yuka Obu
今更だけどSqLite触ってみたよ
by
Keisuke Oohata
Getting started MySQL as Document Data Store
by
Chihiro Ito
Google Gears データベースの基礎
by
webos-goodies
【第3回初心者勉強会】データベースを使おう
by
Shuhei Iitsuka
2011年2月9日第130回FxUG勉強会@東京第一打者空振り三振
by
Sadao Tokuyama
【第二回Android勉強会】データ永続化
by
Ishin FUKUOKA
RとSQLiteによるオミックス解析の促進
by
弘毅 露崎
テーブルの変更・作成
by
Jun Chiba
More from Masayuki Nii
PDF
Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)
by
Masayuki Nii
PDF
トップエスイー勉強会2014第1回-INTER-Mediator
by
Masayuki Nii
PDF
Cocoa勉強会#62-新しい通信クラス群NSURLSessionを使ってみる
by
Masayuki Nii
PDF
Cocoa勉強会#34-iPhoneでタブバーを非表示に無理矢理する方法
by
Masayuki Nii
PDF
Cocoa勉強会#61-メインスレッド外でNSURLConnection
by
Masayuki Nii
PDF
Cocoa勉強会#23-カスタムシートとModality
by
Masayuki Nii
PDF
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
by
Masayuki Nii
PDF
Cocoa勉強会#57-Baseによるローカライズまとめ
by
Masayuki Nii
PDF
Cocoa勉強会#56-小ネタ集あなたの常識はすでに通用しない
by
Masayuki Nii
PDF
Cocoa勉強会#45-AWS SimpleDBを使ってみる
by
Masayuki Nii
PDF
Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー
by
Masayuki Nii
PDF
Cocoa勉強会#33-意外に楽に使えるlibcurl
by
Masayuki Nii
PDF
Cocoa勉強会#28-OpenSSLで暗号化したファイルを復号する
by
Masayuki Nii
PDF
Cocoa勉強会#27-QuickLookプラグインの作り方
by
Masayuki Nii
PDF
Cocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプ
by
Masayuki Nii
PDF
Cocoa勉強会#37-シェイクイベントの実装
by
Masayuki Nii
PDF
Cocoa勉強会#32-表形式のデータに順序を記録する方法
by
Masayuki Nii
PDF
Cocoa勉強会#35-iPhoneでのコピペとカスタムUI
by
Masayuki Nii
PDF
Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証
by
Masayuki Nii
PDF
Cocoa勉強会#38-UITableViewテーブル内のナビゲーション
by
Masayuki Nii
Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)
by
Masayuki Nii
トップエスイー勉強会2014第1回-INTER-Mediator
by
Masayuki Nii
Cocoa勉強会#62-新しい通信クラス群NSURLSessionを使ってみる
by
Masayuki Nii
Cocoa勉強会#34-iPhoneでタブバーを非表示に無理矢理する方法
by
Masayuki Nii
Cocoa勉強会#61-メインスレッド外でNSURLConnection
by
Masayuki Nii
Cocoa勉強会#23-カスタムシートとModality
by
Masayuki Nii
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
by
Masayuki Nii
Cocoa勉強会#57-Baseによるローカライズまとめ
by
Masayuki Nii
Cocoa勉強会#56-小ネタ集あなたの常識はすでに通用しない
by
Masayuki Nii
Cocoa勉強会#45-AWS SimpleDBを使ってみる
by
Masayuki Nii
Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー
by
Masayuki Nii
Cocoa勉強会#33-意外に楽に使えるlibcurl
by
Masayuki Nii
Cocoa勉強会#28-OpenSSLで暗号化したファイルを復号する
by
Masayuki Nii
Cocoa勉強会#27-QuickLookプラグインの作り方
by
Masayuki Nii
Cocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプ
by
Masayuki Nii
Cocoa勉強会#37-シェイクイベントの実装
by
Masayuki Nii
Cocoa勉強会#32-表形式のデータに順序を記録する方法
by
Masayuki Nii
Cocoa勉強会#35-iPhoneでのコピペとカスタムUI
by
Masayuki Nii
Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証
by
Masayuki Nii
Cocoa勉強会#38-UITableViewテーブル内のナビゲーション
by
Masayuki Nii
Recently uploaded
PDF
20251210_MultiDevinForEnterprise on Devin 1st Anniv Meetup
by
Masaki Yamakawa
PDF
エンジニアが選ぶべきAIエディタ & Antigravity 活用例@ウェビナー「触ってみてどうだった?Google Antigravity 既存IDEと...
by
NorihiroSunada
PDF
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #2
by
Tasuku Takahashi
PPTX
楽々ナレッジベース「楽ナレ」3種比較 - Dify / AWS S3 Vector / Google File Search Tool
by
Kiyohide Yamaguchi
PDF
流行りに乗っかるClaris FileMaker 〜AI関連機能の紹介〜 by 合同会社イボルブ
by
Evolve LLC.
PDF
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #1
by
Tasuku Takahashi
20251210_MultiDevinForEnterprise on Devin 1st Anniv Meetup
by
Masaki Yamakawa
エンジニアが選ぶべきAIエディタ & Antigravity 活用例@ウェビナー「触ってみてどうだった?Google Antigravity 既存IDEと...
by
NorihiroSunada
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #2
by
Tasuku Takahashi
楽々ナレッジベース「楽ナレ」3種比較 - Dify / AWS S3 Vector / Google File Search Tool
by
Kiyohide Yamaguchi
流行りに乗っかるClaris FileMaker 〜AI関連機能の紹介〜 by 合同会社イボルブ
by
Evolve LLC.
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #1
by
Tasuku Takahashi
Cocoa勉強会#6-SQLiteをCocoaで使う
1.
第6回 Cocoa 勉強会(2004/7/10) SQLite
を Cocoa で使う(新居雅行) SQL データベースの SQLite SQLite の特徴 Public Dmain 、 オ ー プ ン ソ ー ス で 、 事 実 上 自 由 に 使 え る SQL デ ー タ ベ ー ス (http://www.sqlite.org/) オリジナルには C/C++および TCL のインタフェースだけが用意されている PHP5 への標準バンドル、さらには Mac OS X v10.4 へのバンドルが予定されている ネットワークには基本的には非対応のため、 組み込み用途が主なものとなる。 データベース は、1 つのファイルに保存される 「タイプレス」という独特の考え方。フィールドにはタイプを指定しないでもいい(という か、指定してもあまり意味はないかも) 数値については「精度」 「桁数」的な概念はまったくない。数値は倍精度浮動小数点数(64 ビット)にすべて展開される。 文字も数値もある意味は区別がないためちょっと独特。ただし、そのため BLOB 処理がち ょっと甘いとも言える SQL の非サポート機能で目につくのは GRANT がないこと。アクセス権はデータベースフ ァイルに対して設定するというのが基本コンセプト。また、タイプレスのためか CHECK 制約は機能しないなどもある Ver.2.8 系列は UTF-8 対応、Ver.3 より UTF-8/16 の両方に対応。なお、Ver.3 ではタイプ の扱いが違ってくる模様。 MySQL よりも速いといったベンチマークテストを掲載している。 PostgreSQL よりは 10∼ 20 倍、MySQL よりも 2 倍速いとしているが、SQLite では 1 つのトランザクションで処理 する事でそのスピードが出る SQLite を Mac OS X で使うには バイナリとして配布されているのは、Linux と Windows のみ。そのため、Mac OS X で使うに はビルドしないといけないが、配布されているソース群には make すらない。Mac OS X で手 軽に使うには、以下のものが必要。 SQLite の Mac OS X 版ビルド http://www.c-command.com/tools/sqlite.shtml QuickLite http://www.webbotech.com/ 1
2.
SQLite のコネクティビティ SQLite の接続機能を強化するものとしては以下のものがある。 SQLite
用の ODBC および JDBC のドライバ http://www.ch-werner.de/sqliteodbc/ http://www.ch-werner.de/javasqlite/ SQLiteServer 1.0(SQLite をネットワークからアクセス。REALbasic で制作) http://sqlabs.net/ QuickLite について SQLite を使うための Cocoa のクラスをオープンソースで提供しているのが QuickLite 確かに、Xcode で開いてデータベース処理はできるが、事実上、自分で SQL 文をテキスト で作成しなければならない。 つまり、 データベースの内容をオブジェクト化するものではな く、SQLite へのインタフェースを取るための Cocoa クラス そのため、以下の 3 種類のオブジェクト(クラス)について知るだけで使える(というか、 その程度の機能) 。以下の表は主なメソッドの紹介で、他にもメソッドがある NSQuickLiteDatabase databaseWithFile: open close performQuery: prepareStringForQuery: encodeDataToBase64: NSQuickLiteCursor rowCount columnCount columnNames rowAtIndex: valuesForColumn: valuesForRow: NSQuickLiteRow stringForColumn: dataForColumn: andRow: values データベースファイルの抽象化 データベースファイルを指定して初期化 データベースをオープン データベースをクローズ 文字列で指定した SQL 文を発行、NSQuickLinkCursor を戻す SQL 文をクエリーできるように変換。つまりクォートの 置き換え NSData を base64 にして NSString を戻す クエリー結果の抽象化クラス レコード数 フィールド数 フィールド名の NSArray を得る レコード番号を指定して NSQuickLinkRow への参照を 得る 文字列で指定したフィールドのデータを NSArray で得る レコード番号で指定したレコードのデータを NSDictionary で得る クエリー結果の中の 1 レコードを抽象化するクラス フィールド名を指定してそのフィールドのデータを文字 列として得る フィールド名とレコード番号指定してそのフィールドの データを NSData として得る レコードのデータを NSDictionary で得る 2
3.
NSString での Unicode
でインプット/アプトプットがきちんとできる。もちろん日本語も OK BLOB 対応のために base64 でエンコードする。挿入するデータについては自分で base64 にしないといけないが、メソッドは用意されている。取り出しは NSData として取り出す メソッドで元のバイナリが得られる SQLite をフレームワークにするというプロジェクトもあるが、激しくバグっており(きっ と、プロジェクトを作ったけど、ほんとにフレームワークとして使ってはいないだろう) 、 それはそのままでは使えない。動くフレームワークは、Cocoa 勉強会のサーバ領域に保存 (ファイル名: QuickLite Framework.zip) テキストファイルのインポート機能があることはあるが、 これはちょっと使えない…。 まじ めにテキストファイルのインポートする人はちゃんと改造するか、自分で作りましょう QuickLite を使ったサンプルプログラム ファイル名:msykQLsample.zip "SQL1" = "INSERT INTO TEST1(str1,str2) VALUES( '表示', 'aaa strings' );"; "SQL2" = "INSERT INTO TEST1(str1,str2) VALUES( '日本語', 'aaa strings' );"; "SQL3" = "INSERT INTO TEST1(str1,str2) VALUES( '東京特許許可局', 'aaa strings' );"; "SQL4" = "INSERT INTO TEST1(str1,str2) VALUES( '髙島屋', 'aaa strings' );"; "SQL5" = "INSERT INTO TEST1(str1,str2) VALUES( '美しい日本語', 'aaa strings' );"; "SQL6" = "INSERT INTO TEST1(str1,str2) VALUES( '日本語', 'aaa strings' );"; 3
4.
#import "DBAccess.h" //フレームワーク化したQuickLiteをインポート #import <QuickLite/QuickLite.h> @implementation
DBAccess - (IBAction)testRun:(id)sender { long i; NSString* dbPath = @"~/testdb"; //データベースファイル QuickLiteDatabase* db = [QuickLiteDatabase databaseWithFile: dbPath]; //データベースファイルをもとにしたデータベースオブジェクトを構築する [db open]; //データベースを開く NSArray* tableArray = [db tables]; //テーブルの個数を参照 for (i = 0; i < [tableArray count]; i++) //とりあえずテーブルをすべて消す [db dropTable: [tableArray objectAtIndex: i]]; [db performQuery: @"CREATE TABLE TEST1(id INTEGER PRIMARY KEY, str1, str2);"]; //テーブルを作成するクエリーを発行する [db performQuery: NSLocalizedString( @"SQL1", @"" ) ]; //INSERTのクエリーを発行 [db performQuery: NSLocalizedString( @"SQL2", @"" ) ]; : [db performQuery: NSLocalizedString( @"SQL9", @"" ) ]; [db performQuery: NSLocalizedString( @"SQL10", @"" ) ]; QuickLiteCursor* cursor = [db performQuery: @"SELECT * FROM TEST1;"]; //テーブルのレコードをすべて取り出す long rowCount = [cursor rowCount]; //レコード数を求める if (rowCount > 0) { for (i = 0; i < rowCount; i++) { //それぞれのレコードについて QuickLiteRow* row = [cursor rowAtIndex: i]; //行データを参照し if (row != nil) { //各フィールドの値を取り出す NSLog(@"%@: %@", @"id", [row stringForColumn: @"id"]); NSLog(@"%@: %@", @"str1", [row stringForColumn: @"str1"]); NSLog(@"%@: %@", @"str2", [row stringForColumn: @"str2"]); } } } [db close]; //データベースを閉じる } @end 4
Download