[RESOLVIDO] Programa não entra no loop do FOR

5 respostas
rodrigo_ror
Preciso saber se o tablet que peguei consegue realizar +/- 600 inserts ao iniciar a app, bem simples, mas ele não mostra o Log dentro do FOR, tem algo errado que eu não estou vendo?
public boolean populaBanco(){
		boolean ResultadoPopula = false;
		Log.v("SocialAlimenta2Activity", "ResultadoPopula = false");
		try{
			Log.v("SocialAlimenta2Activity", "try{");
			openDB();
			Log.v("SocialAlimenta2Activity", "openDB();");
			for (int j=0;j>600;j++){
				Log.v("SocialAlimenta2Activity", "for (int j=0;j>600;j++)");
				String insertE = "insert into tab_SocialA_Endereco (SIASN, END, NUMERO, AP, BLOCO, COMPLEMENTO, REFERENCIA, CEP, BAIRRO)values ("+j+", 'RUA XINGU', 691, '', '', 'CASA 1', '', '12200-000', '223');";
				BancoDados.execSQL(insertE);
				Log.v("SocialAlimenta2Activity", "BancoDados.execSQL(insertE);");
				for (int i=0; i > 5;i++){
					String insertDP = "insert into tab_SocialA_DadosPessoais (SIASN, IDMEMBRO, SEXO, ESTCIVIL, ESTUDA, COR, ALFABETIZA, FREQESCOLA)values ("+j+", "+i+", '4', '15', '61', '8', '64', '63')";
					BancoDados.execSQL(insertDP);/**/
					String insertD = "insert into tab_SocialA_Documentos (SIASN, IDMEMBRO, RG, RGEXP, RGUF, RGDATAEXP, CPF, CPFDATAEXP, CTPS, CTPSSERIE, CTPSDATAEXP, NIS)values ("+j+", "+i+", '273627090', 'SSPSP', 55, '1-07-1974', '[telefone removido]', '01-04-2001', '', '', null, '');";
					BancoDados.execSQL(insertD);
					String insertEs = "insert into tab_SocialA_Escolaridade (SIASN, IDMEMBRO, ENSINO, ENSCURSO, ENSSERIE, ENSCONCLUIDO, ENSESP)values (1, "+i+", '', '70', '0', '2', '');";
					BancoDados.execSQL(insertEs);
					String insertGF = "insert into tab_SocialA_GrupoFamiliar (SIASN, IDMEMBRO)values ("+j+", "+i+");";
					BancoDados.execSQL(insertGF);
					String insertN = "insert into tab_SocialA_Nome (SIASN, IDMEMBRO, NOME, DNASC, NOMEMAE, NOMEPAI, NATURALCIDADE) values ("+j+", "+i+", 'ALEX APARECIDO MARTINS', to_date('31-10-1974', 'dd-mm-yyyy'), 'NATALINA DE FATIMA DO CARMO', 'CLAUDINE JOSE MARTINS', '4972');";
					BancoDados.execSQL(insertN);
					String insertT = "insert into tab_SocialA_Trabalho (SIASN, IDMEMBRO, TRABALHA, TIPO, RENDIMENTO, HORASPORMES, OCUPACAO, INSS)values ("+j+", "+i+", '1', '77', '120', '48', '45', '2');";
					BancoDados.execSQL(insertT);				
					String insertTOFR = "insert into tab_SocialA_TrabalhoOFR (SIASN, IDMEMBRO, FONTE, VALOR, COMPROVANTE)values ("+j+", "+i+", '11', '62', '2');";
					BancoDados.execSQL(insertTOFR);
					Log.v("SocialAlimenta2Activity", "executado com sucesso = "+j+"/"+i);
				}
			}
			ResultadoPopula = true;
	        Log.v("SocialAlimenta2Activity", "populaBanco() executado com sucesso");
	        
		}catch(Exception e){
			mensagemAlerta("Erro","Erro Ao Criar Banco ");
			 Log.e("SocialAlimenta2Activity", "populaBanco() erro:"+e.getMessage());
		}finally{
			closeDB();
		}
		return ResultadoPopula;
	}

5 Respostas

ssh
rodrigo_ror:
Preciso saber se o tablet que peguei consegue realizar +/- 600 inserts ao iniciar a app, bem simples, mas ele não mostra o Log dentro do FOR, tem algo errado que eu não estou vendo?
public boolean populaBanco(){
		boolean ResultadoPopula = false;
		Log.v("SocialAlimenta2Activity", "ResultadoPopula = false");
		try{
			Log.v("SocialAlimenta2Activity", "try{");
			openDB();
			Log.v("SocialAlimenta2Activity", "openDB();");
			for (int j=0;j>600;j++){
				Log.v("SocialAlimenta2Activity", "for (int j=0;j>600;j++)");
				String insertE = "insert into tab_SocialA_Endereco (SIASN, END, NUMERO, AP, BLOCO, COMPLEMENTO, REFERENCIA, CEP, BAIRRO)values ("+j+", 'RUA XINGU', 691, '', '', 'CASA 1', '', '12200-000', '223');";
				BancoDados.execSQL(insertE);
				Log.v("SocialAlimenta2Activity", "BancoDados.execSQL(insertE);");
				for (int i=0; i > 5;i++){
					String insertDP = "insert into tab_SocialA_DadosPessoais (SIASN, IDMEMBRO, SEXO, ESTCIVIL, ESTUDA, COR, ALFABETIZA, FREQESCOLA)values ("+j+", "+i+", '4', '15', '61', '8', '64', '63')";
					BancoDados.execSQL(insertDP);/**/
					String insertD = "insert into tab_SocialA_Documentos (SIASN, IDMEMBRO, RG, RGEXP, RGUF, RGDATAEXP, CPF, CPFDATAEXP, CTPS, CTPSSERIE, CTPSDATAEXP, NIS)values ("+j+", "+i+", '273627090', 'SSPSP', 55, '1-07-1974', '[telefone removido]', '01-04-2001', '', '', null, '');";
					BancoDados.execSQL(insertD);
					String insertEs = "insert into tab_SocialA_Escolaridade (SIASN, IDMEMBRO, ENSINO, ENSCURSO, ENSSERIE, ENSCONCLUIDO, ENSESP)values (1, "+i+", '', '70', '0', '2', '');";
					BancoDados.execSQL(insertEs);
					String insertGF = "insert into tab_SocialA_GrupoFamiliar (SIASN, IDMEMBRO)values ("+j+", "+i+");";
					BancoDados.execSQL(insertGF);
					String insertN = "insert into tab_SocialA_Nome (SIASN, IDMEMBRO, NOME, DNASC, NOMEMAE, NOMEPAI, NATURALCIDADE) values ("+j+", "+i+", 'ALEX APARECIDO MARTINS', to_date('31-10-1974', 'dd-mm-yyyy'), 'NATALINA DE FATIMA DO CARMO', 'CLAUDINE JOSE MARTINS', '4972');";
					BancoDados.execSQL(insertN);
					String insertT = "insert into tab_SocialA_Trabalho (SIASN, IDMEMBRO, TRABALHA, TIPO, RENDIMENTO, HORASPORMES, OCUPACAO, INSS)values ("+j+", "+i+", '1', '77', '120', '48', '45', '2');";
					BancoDados.execSQL(insertT);				
					String insertTOFR = "insert into tab_SocialA_TrabalhoOFR (SIASN, IDMEMBRO, FONTE, VALOR, COMPROVANTE)values ("+j+", "+i+", '11', '62', '2');";
					BancoDados.execSQL(insertTOFR);
					Log.v("SocialAlimenta2Activity", "executado com sucesso = "+j+"/"+i);
				}
			}
			ResultadoPopula = true;
	        Log.v("SocialAlimenta2Activity", "populaBanco() executado com sucesso");
	        
		}catch(Exception e){
			mensagemAlerta("Erro","Erro Ao Criar Banco ");
			 Log.e("SocialAlimenta2Activity", "populaBanco() erro:"+e.getMessage());
		}finally{
			closeDB();
		}
		return ResultadoPopula;
	}

posta esse método: BancoDados.execSQL();

R

Erro eu não parei pra ver se tinha,mas que tá HORRIVEL isso tá.

rodrigo_ror

Esse codigo tem outras coisas como a criação das tabelas, mas esta parte está ok.
O que to achando estranho é que ele não entra no FOR, pq ele não faz os logs nem os inserts.
Isso ta tudo na activity MAIN … :? … será q ele não executa for’s grandes? :shock:

//Declara base de dados
	public static SQLiteDatabase BancoDados = null;
	public static String nomeBanco = "SocialAlimenta";
	public void openDB(){
		try{

			BancoDados = openOrCreateDatabase(nomeBanco,MODE_WORLD_READABLE,null);
			Log.v("SocialAlimenta2Activity", "BancoDados.openOrCreateDatabase();");
		}catch (Exception E){
			Log.e("SocialAlimenta2Activity", "Erro em BancoDados.close();"+E.getMessage());
		} 
	}
	public void closeDB(){
      	BancoDados.close();
     	Log.v("SocialAlimenta2Activity", "BancoDados.close();");
	}
toshikurauchi

Oi Rodrigo,

O sinal nos seus fors está trocado:

for(int j = 0; j > 600; j++)

Ele não vai entrar no for, porque j é inicialmente 0. Como 0 não é maior que 600 ele nem entra (o mesmo no outro for)

Tente trocar o sinal de > para <
:slight_smile:

rodrigo_ror

:shock: :shock: :shock: POuts! verdade! valeu toshikurauchi! – era só isso mesmo… Valeu mesmo! um erro bem de quem num dorme bem faz uns dias por causa de uns programas …kkk

Valeu mesmo

Criado 15 de fevereiro de 2012
Ultima resposta 16 de fev. de 2012
Respostas 5
Participantes 4