O procedimento ou função 'mtl.Consulta' espera o parâmetro '@Carreta1', que não foi fornecido

5 respostas
programaçãoandroid
I

Estou fazendo um aplicativo que faz uma consulta no banco de dados e carrega no Gridview, porem quando clico no botão que busca a tabela e carrega no meu grid aparece essa mensagem

O procedimento ou função ‘mtl.Consulta’ espera o parâmetro ‘@Carreta1’, que não foi fornecido

o qual parâmetro que ficou faltando passar ?

segue o código abaixo

<a class="mention" href="/u/override">@Override</a>

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);
txtCarreta = (TextView) findViewById(R.id.txtCarreta);
    txtTipo = (TextView) findViewById(R.id.txtTipo);
    txtCalibrar = (TextView) findViewById(R.id.txtCalibragem);
    txtAtuallizar = (TextView) findViewById(R.id.txtAtualizar);

            btnAtualizar = (Button) findViewById(R.id.btnAtualizar);
    gridLista = (GridView) findViewById(R.id.gridLista);

    /************* CONNECTION DATABASE VARIABLES ***************/

    connect = connect(un, password, db, port, ip);

    btnAtualizar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            try {

                PreparedStatement statement = connect.prepareStatement("EXEC mtlConsulta");

                final ArrayList list = new ArrayList();
                rs = statement.executeQuery();
                while (rs.next()) {
                    list.add(rs.getString("log_08Checklist.Carreta1"));
                    list.add(rs.getString("Tipo"));
                    list.add(rs.getString("log_08Checklist.CaligragemCarreta"));

                }
                ArrayAdapter adapter = new ArrayAdapter(MainActivity.this,android.R.layout.activity_list_item, list);
             gridLista.setAdapter(adapter);
            } catch (SQLException e) {
                Toast.makeText(MainActivity.this, e.getMessage().toString(),
                        Toast.LENGTH_LONG).show();

            }
}
});

gridLista.setOnItemClickListener(new AdapterView.OnItemClickListener() {

<a class="mention" href="/u/override">@Override</a>

public void onItemClick(AdapterView<?> parent, View view,

int position, long id) {

// TODO Auto-generated method stub
String item = gridLista.getItemAtPosition(position).toString();
            Toast.makeText(MainActivity.this, item + " selected", Toast.LENGTH_LONG).show();
        }
    });
}

}

5 Respostas

V

Já testou usar a Query no lugar disso?

I

@Vinicius_Salles

fiz dereto com o Select, e agora compila sem erros, mas quando clico no botão de chamar a tabela e passar pro meu gridview aparece a mensagem: Invalid column name CalibragemCarreta

segue o codigo abaixo

btnAtualizar = (Button) findViewById(R.id.btnAtualizar);
gridLista = (GridView) findViewById(R.id.gridLista);

/************* CONNECTION DATABASE VARIABLES ***************/

    connect = connect(un, password, db, port, ip);

    btnAtualizar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            try {

                PreparedStatement statement = connect.prepareStatement("Select log_08Checklist.Carreta1, Tipo, log_08Checklist.CaligragemCarreta\n" +
                        "\n" +
                        "From MasterLink_CadastroGeral.dbo.CadCarreta \n" +
                        "\n" +
                        "INNER JOIN MasterLink_ControleDeLogistica.dbo.log_08Checklist \n" +
                        "\n" +
                        "ON MasterLink_CadastroGeral.dbo.CadCarreta.Carreta1 = log_08Checklist.Carreta1");

                final ArrayList<Calibragem> list = new ArrayList<Calibragem>();
                rs = statement.executeQuery();
                while (rs.next()) {

                    Calibragem pneus = new Calibragem();

                    pneus.setCarreta(rs.getString("Carreta1"));
                    pneus.setTipo(rs.getString("Tipo"));
                    pneus.setData(rs.getString("CalibragemCarreta"));

                      list.add(pneus);//adicionando o obj nela


                }

                ArrayAdapter adapter = new ArrayAdapter(MainActivity.this,android.R.layout.activity_list_item, list);
             gridLista.setAdapter(adapter);
            } catch (SQLException e) {
                Toast.makeText(MainActivity.this, e.getMessage().toString(),
                        Toast.LENGTH_LONG).show();

            }
}
});

gridLista.setOnItemClickListener(new AdapterView.OnItemClickListener() {

<a class="mention" href="/u/override">@Override</a>

public void onItemClick(AdapterView<?> parent, View view,

int position, long id) {

// TODO Auto-generated method stub
String item = gridLista.getItemAtPosition(position).toString();
            Toast.makeText(MainActivity.this, item + " selected", Toast.LENGTH_LONG).show();
        }
    });
}

}

V

Esta escrito CaliGragemCarreta

V

Se ainda não der certo, monte a query direto no seu SGBD e rode por la, se o erro for realmente na query vai ser fácil de encontrar por la

I

@Vinicius_Salles

Deu certo a comunicação com a tabela.

só que agora está aparecendo erro na hora passar pro gridview.

quando cliclo no botão pra chamar a tabela e passar no gridview o aplicativo fecha e aparece esses erro no Debugger

E/ArrayAdapter: You must supply a resource ID for a TextView

D/AndroidRuntime: Shutting down VM

W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x42462e48)

E/AndroidRuntime: FATAL EXCEPTION: main

Process: com.example.ivan.Calibragem, PID: 28165

java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView

at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:386)

at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)

at android.widget.AbsListView.obtainView(AbsListView.java:2306)

at android.widget.GridView.onMeasure(GridView.java:1044)

at android.view.View.measure(View.java:16574)

at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)

at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)

at android.view.View.measure(View.java:16574)

at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5140)

at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)

at android.view.View.measure(View.java:16574)

at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5140)

at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1406)

at android.widget.LinearLayout.measureVertical(LinearLayout.java:697)

at android.widget.LinearLayout.onMeasure(LinearLayout.java:590)

at android.view.View.measure(View.java:16574)

at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5140)

at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)

at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2421)

at android.view.View.measure(View.java:16574)

at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1959)

at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1155)

at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1337)

at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1042)

at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5960)

at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)

at android.view.Choreographer.doCallbacks(Choreographer.java:574)

at android.view.Choreographer.doFrame(Choreographer.java:544)

at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)

at android.os.Handler.handleCallback(Handler.java:733)

at android.os.Handler.dispatchMessage(Handler.java:95)

at android.os.Looper.loop(Looper.java:136)

at android.app.ActivityThread.main(ActivityThread.java:5118)

at java.lang.reflect.Method.invokeNative(Native Method)

at java.lang.reflect.Method.invoke(Method.java:515)

at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)

at dalvik.system.NativeStart.main(Native Method)

Caused by: java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.TextView

at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:379)

at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)

at android.widget.AbsListView.obtainView(AbsListView.java:2306)

at android.widget.GridView.onMeasure(GridView.java:1044)

at android.view.View.measure(View.java:16574)

at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)

at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)

at android.view.View.measure(View.java:16574)

at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5140)

at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)

at android.view.View.measure(View.java:16574)

at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5140)

at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1406)

at android.widget.LinearLayout.measureVertical(LinearLayout.java:697)

at android.widget.LinearLayout.onMeasure(LinearLayout.java:590)

at android.view.View.measure(View.java:16574)

at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5140)

at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)

at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2421)

at android.view.View.measure(View.java:16574)

at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1959)

at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1155)

at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1337)

at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1042)

at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5960)

at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)

at android.view.Choreographer.doCallbacks(Choreographer.java:574)

at android.view.Choreographer.doFrame(Choreographer.java:544)

at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)

at android.os.Handler.handleCallback(Handler.java:733)

at android.os.Handler.dispatchMessage(Handler.java:95)

at android.os.Looper.loop(Looper.java:136)

at android.app.ActivityThread.main(ActivityThread.java:5118)

at java.lang.reflect.Method.invokeNative(Native Method)

at java.lang.reflect.Method.invoke(Method.java:515)

at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)

at dalvik.system.NativeStart.main(Native Method)

I/Process: Sending signal. PID: 28165 SIG: 9

Disconnected from the target VM, address: localhost:8600, transport: socket
Criado 28 de fevereiro de 2018
Ultima resposta 1 de mar. de 2018
Respostas 5
Participantes 2