Creo que hay un error en el orden del código, quedaría así:
Código:
private function buscarDatos():void
{
var selectStmt:SQLStatement = new SQLStatement();
selectStmt.sqlConnection = conn;
var sql:String = "SELECT * FROM clientes WHERE (nombre = :search)";
selectStmt.parameters[":search"] = busqueda.text;
selectStmt.text = sql;
selectStmt.addEventListener(SQLEvent.RESULT, selectResult);
selectStmt.addEventListener(SQLErrorEvent.ERROR, selectError);
selectStmt.execute();
function selectResult(event:SQLEvent):void
{
selectStmt.removeEventListener(SQLEvent.RESULT, selectResult);
selectStmt.removeEventListener(SQLErrorEvent.ERROR, selectError);
var result:SQLResult = selectStmt.getResult();
for (var i:int = 0; i < result.data.length; i++)
{
var row:Object = result.data[i];
data_provider.push({id_registro:row.id, nombre:row.nombre, direccion:row.direccion, email:row.email});
}
registros_dg.dataProvider = result.data;
}
function selectError(event:SQLErrorEvent):void
{
Alert.show("Error message:", event.error.message);
Alert.show("Details:", event.error.details);
}
}
function createListener(event:SQLEvent):void
{
registros_dg.addEventListener(ListEvent.CHANGE, dgChangeHandler);
}
private function dgChangeHandler(event:ListEvent):void
{
var id_seleccion = event.target.selectedItem.id_registro;
var deleteManager:SQLStatement = new SQLStatement();
deleteManager.sqlConnection = conn;
deleteManager.text = "DELETE FROM clientes WHERE id = :id";
deleteManager.parameters[":id"] = id_seleccion;
deleteManager.execute();
}
]]>
</mx:Script>
<mx:Panel title="Registro de Usuarios" height="323" width="453" id="panel1">
<mx:TextInput id="busqueda"/>
<mx:Button label="Buscar" click="buscarDatos()" id="button1"/>
<mx:DataGrid id="registros_dg" width="100%" height="191" y="50" click="dgChangeHandler()">
<mx:columns>
<mx:DataGridColumn headerText="NOMBRE" dataField="nombre" />
<mx:DataGridColumn headerText="DIRECCION" dataField="direccion"/>
<mx:DataGridColumn headerText="TELEFONO" dataField="telefono"/>
<mx:DataGridColumn headerText="E-MAIL" dataField="email"/>
</mx:columns>
</mx:DataGrid>
</mx:Panel>
</mx:WindowedApplication>
Las palabras que están en
negritas deberás cambiarlas de acuerdo al nombre de las columnas de tu tabla
Clientes.
Le quité el detaprovider en el tag del DataGrid, no sé si de inicio muestres unos datos y cuando hacen la búsqueda se refresque el DataGrid, en ese caso, deberás crear el dataProvider de la misma forma en que lo estas haciendo en la función
selectResult.
Saludos.