質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Kivy

Kivyは、Pythonを用いたNUI開発のためのオープンソースフレームワーク。マルチタッチなど多くの入力に対応したNUIアプリなどを開発することができます。多くの環境で動作するクロスプラットフォームです。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

解決済

kivy sqllit3でレコードを追加するとたまにアプリが停止する

mandapink
mandapink

総合スコア7

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Kivy

Kivyは、Pythonを用いたNUI開発のためのオープンソースフレームワーク。マルチタッチなど多くの入力に対応したNUIアプリなどを開発することができます。多くの環境で動作するクロスプラットフォームです。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1回答

0評価

0クリップ

198閲覧

投稿2022/06/05 19:49

kivy の練習にスマホでも使えるメモアプリを開発していたんですが
保存しようとするとたまにアプリが停止してしまい ctrl+Cで強制終了しないといけない事態になります 原因はまったくわかりません 
一定確率で停止するアプリなんて最悪なんで何とかしたいです さすがにこれだけで解決策はなかなかでないと思うのでせめて
似たような事例、sql kivyの高度な情報(実はそもそも相性がわるかった みたいな)などを知っている方がいましたら教えてください

くわしい症状
print("aaaaaaaaaaaaaaaa",data)までは機能しており
self.conn.commit()、またはself.list_up()に原因があると思います
エラーも表示されないのでまったくわからない状況です
正常に行く場合はself.list_up()によってメモ内容がすべてprintされます
環境
win10pcで実行

from kivy.lang import Builder Builder.load_file('mem2.kv') import kivy #import japanize_kivy from kivy.app import App from kivy.uix.label import Label from kivy.clock import Clock from kivy.config import Config from kivy.uix.widget import Widget from kivy.uix.gridlayout import GridLayout from kivy.uix.textinput import TextInput from kivy.uix.boxlayout import BoxLayout from kivy.uix.button import Button from kivy.uix.button import ListProperty from kivy.properties import StringProperty from kivy.factory import Factory import sqlite3 import random import time import datetime class LoginScreen(Widget): window1 = None text = StringProperty('') name = StringProperty('') tags = StringProperty('') def __init__(self, **kwargs): super(LoginScreen, self).__init__(**kwargs) self.cursor="" self.cols = 2 self.text = 'No Text' self.name ="" self.tags ="" def OKClick(self): self.text = self.ids.text1.text self.name = self.ids.name1.text self.tags = self.ids.tags1.text #mem=open(self.name +".TXT","a", encoding='utf-8') #mem.write(self.text+"</br>") #mem.close() # # sql = """INSERT INTO mem_list VALUES(?, ?, ?,?,?)""" dt_now = str(datetime.datetime.now()) id_=str(random.random())+dt_now data = ((id_, self.tags, self.name, self.text, dt_now))#挿入するレコードを指定 print("aaaaaaaaaaaaaaaa",data) self.cursor.execute(sql, data)#executeコマンドでSQL文を実行 self.conn.commit()#コミットする self.list_up() self.ids.text1.text="" def CATEClick(self): print("hgfudgui") def action_Click(self): self.clear_widgets() self.add_widget(self.window1) def list_up(self): sql = """SELECT * FROM mem_list""" self.cursor.execute(sql) print("bbbbbbbbbbbbbbbbbbbb",self.cursor.fetchall()) class MyApp(App): def on_start(self): print('default handler') def build(self): #sql = """SELECT name FROM sqlite_master WHERE TYPE='table'""" mains=LoginScreen() dbname = ('test.db')#データベース名.db拡張子で設定 mains.conn = sqlite3.connect(dbname, isolation_level=None) mains.cursor = mains.conn.cursor() return mains if __name__ == '__main__': MyApp().run()
<LoginScreen>: BoxLayout: orientation: 'vertical' size: root.size padding: 20 Button: id: button pos_hint: {'center_x': .5, 'center_y': .5} text: "OK" size_hint: (None, None) size: 100,40 on_press: root.OKClick() Button: id: button2 pos_hint: {'center_x': .3, 'center_y': .3} text: "settei" size_hint: (None, None) size: 100,40 on_press: root.CATEClick() TextInput: id: tags1 text: '' size_hint: (None, None) size_y: 50 hint_text: 'Input Text' TextInput: id: name1 text: '' size_hint: (None, None) size: 600,50 hint_text: 'Input Text' TextInput: id: text1 text: '' hint_text: 'Input Text' Label: id: label text: root.text```

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

hoshi-takanori

2022/06/05 20:14

python の db よく分かりませんが、cursor って SQL 文ごとに作るべきでは…。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Kivy

Kivyは、Pythonを用いたNUI開発のためのオープンソースフレームワーク。マルチタッチなど多くの入力に対応したNUIアプリなどを開発することができます。多くの環境で動作するクロスプラットフォームです。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。