Реагировать на проблему выполнения собственного запроса SQLite - PullRequest
0 голосов
/ 16 сентября 2018

Я пытаюсь загрузить данные в ListView, я выполняю запрос в браузере SQLite, и он выполняется просто отлично, но когда я запускаю его в приложении, он показывает эту ошибку

ошибка

Мой код:

  async componentDidMount() {
    let email = await AsyncStorage.getItem('email');
    let qApartments=`SELECT ee.title || '  ап.' || ea.apartment,price,monthly_fee,ea.contact_email,ea.contact_phone,ea.contact_person,ea.apartment,client_id,tt.from_date,tt.to_date FROM entrances_entrance as ee INNER JOIN tasks_schedule as te on ee.id = te.entrance_id INNER JOIN entrances_apartment as ea on ee.id=ea.entrance_id INNER JOIN auth_user as au on au.id = te.assignee_id INNER JOIN tasks_task as tt on au.id = tt.assignee_id   WHERE username = '${email}'`;
    let qTasks=`SELECT title,price from tasks_task as tt INNER JOIN auth_user as au on au.id = tt.assignee_id  WHERE username = '${email}'` ;

    this.fetchData(qApartments,'a');
    this.fetchData(qTasks,'b');
  }

  fetchData(query,stateWhere) {
    db.transaction((tx) => {
      tx.executeSql(query
      , errorCB, (tx, results) => {
          var len = results.rows.length;
          const rows = [];
          if(len > 0) {
            for (let index = 0; index < results.rows.length; index++) {
              const element = results.rows.item(index);
              rows.push(element);
            }
            if(stateWhere==='a')
            this.setState({apartData: rows});
            else if(stateWhere==='b')
            this.setState({holderData:rows})
          }
        });
    });
  }

Загрузочная часть в ListView выглядит следующим образом:

  render() {
    return (
      <View style={styles.container}>
        <View style={styles.btnFrame}>
          <TouchableOpacity
            onPress={this.showAparts}
            style={styles.btn_top}>
            <Text style={this.topTxtStyle()}>Списък Обекти</Text>
            <Text style={this.topTxtStyle()}>(Апартаменти)</Text>
          </TouchableOpacity>
          <TouchableOpacity
          onPress={this.showApartsHolders}
          style={styles.btn_top2}
          >

            <Text style={this.topTxtStyleHolder()}>Списък Taxes</Text>
            <Text style={this.topTxtStyleHolder()}>Taxes</Text>
          </TouchableOpacity>
        </View>
        {this.state.isApart &&
          <View>
            <ListView
              dataSource={this.state.dataSource}
              renderSeparator={this.ListViewItemSeparatorLine}
              renderRow={
                (rowData) =>
                  <TouchableOpacity style={styles.row_item} onPress={this.gotoApart.bind(this, rowData)}>
                    <Image source={Images.home_red} style={{ width: 40, height: 40 }} />
                    <View style={styles.text_view}>
                      <Text style={styles.row_text} >{rowData.title}</Text>
                    </View>
                  </TouchableOpacity>
              }
            />
          </View>
        }
        {this.state.isHolder &&
          <View>
            <ListView
              dataSource={this.state.dataSource}
              renderSeparator={this.ListViewItemSeparatorLine}
              renderRow={
                (rowData) =>
                  <TouchableOpacity style={styles.row_item} onPress={this.gotoHolders.bind(this, rowData)}>
                    {/* <Image source={Images.home_red} style={{ width: 40, height: 40 }} /> */}
                    <View style={styles.text_view}>
                      <Text style={styles.row_text} >{rowData.title}</Text>
                    </View>
                  </TouchableOpacity>
              }
            />
          </View>
            }
          </View>
    )
  }

Может кто-нибудь помочь мне с тем, чтоэта проблема.Я пытался сделать "SELECT ee.title || 'ап."|| ea.apartment as ttl "и" {rowData.ttl} ", но ошибка продолжает отображаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...